grammar and small changes
This commit is contained in:
@@ -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)*;
|
||||
Reference in New Issue
Block a user