grammar and small changes

This commit is contained in:
2024-08-18 21:39:23 +02:00
parent 01df4b4ba7
commit ec681eb97a
7 changed files with 158 additions and 208 deletions
+24 -5
View File
@@ -1,9 +1,28 @@
grammar Wyst;
WS : [ \t\r\n]+ -> skip;
WS: [ \t\r\n]+ -> skip;
NUMBER: [1-9][0-9]* | '0';
HEX: '0x' [a-fA-F0-9]*;
IDENTIFIER: [a-zA-Z_] ([a-zA-Z0-9] | '::')*;
MATH: '+' | '-' | '*' | '/';
fragment ESC: '\\' ['"\\] ;
STRING: '"' (ESC | ~["\\])* '"';
round_def: '(' (var_def (',' var_def)* ','?)? ')';
func_def: IDENTIFIER IDENTIFIER round_def code_block;
var_def: IDENTIFIER IDENTIFIER;
var_def_set: var_def '=' expr;
asm: '%' IDENTIFIER expr (',' expr)* ';';
expr: IDENTIFIER
;
expr:
( NUMBER |
HEX |
IDENTIFIER |
STRING
) (MATH expr)*;
INT: [0-9]+;
IDENTIFIER: [a-zA-Z_] ([a-zA-Z0-9] | '::')*;
code_block: '{' ((
expr |
var_def |
var_def_set
) ';')* '}';
top: (asm|func_def)*;