grammar Poly; | |
options { | |
output=AST; | |
language=ObjC; | |
} | |
tokens { MULT; } // imaginary token | |
poly: term ('+'^ term)* | |
; | |
term: INT ID -> ^(MULT[@"*"] INT ID) | |
| INT exp -> ^(MULT[@"*"] INT exp) | |
| exp | |
| INT | |
| ID | |
; | |
exp : ID '^'^ INT | |
; | |
ID returns [NSString *value] | |
: 'a'..'z'+ ; | |
INT returns [NSString *value] | |
: '0'..'9'+ ; | |
WS : (' '|'\t'|'\r'|'\n')+ { $channel=HIDDEN; } ; |