Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar Calculator;
- @parser::members
- {
- protected const int EOF = Eof;
- }
- @lexer::members
- {
- protected const int EOF = Eof;
- protected const int HIDDEN = Hidden;
- }
- /*
- * Parser Rules
- */
- prog: expr+ ;
- expr : NOT expr # Not
- | expr op=('**') expr # Potencia
- | expr op=('AND') expr # AND
- | expr op=('OR') expr # OR
- | expr op=('*'|'/') expr # MulDiv
- | expr op=('+'|'-') expr # AddSub
- | INT # int
- | TRUE # true
- | FALSE # false
- | '(' expr ')' # parens
- ;
- /*
- * Lexer Rules
- */
- TRUE : 'true';
- AND : 'and';
- OR : 'or';
- FALSE : 'false';
- NOT : '!';
- INT : [0-9]+;
- MUL : '*';
- DIV : '/';
- ADD : '+';
- SUB : '-';
- WS
- : (' ' | '\r' | '\n') -> channel(HIDDEN)
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement