Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar FOOL;
- @header {
- import ast.*;
- }
- @lexer::members {
- int lexicalErrors=0;
- }
- /*------------------------------------------------------------------
- * PARSER RULES
- *------------------------------------------------------------------*/
- prog returns [Node ast]: e=exp { $ast = new ProgNode($e.ast); } SEMIC EOF;
- exp returns [Node ast]: t=term { $ast = $t.ast; } (PLUS t2=term { $ast = new PlusNode($ast, $t2.ast); })* ;
- term returns [Node ast]: f=factor { $ast = $f.ast; } (TIMES f2=factor { $ast = new TimesNode($ast, $f2.ast); })* ;
- factor returns [Node ast]: v=value { $ast = $v.ast; } (EQ v2=value { $ast = new EqualNode($ast, $v2.ast); })* ; // EqualNode
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement