blob: 30ad7c33da312162229ac8b1a842e568e48b54c1 [file] [log] [blame]
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; } ;