Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- expr
- : curr=expr (AR_DISPATCH type=TYPE)? dis=DISPATCH name=ID
- LPAREN (exprs+=expr (COMMA exprs+=expr)*)? RPAREN #dispatchcall
- | name=ID LPAREN (exprs+=expr (COMMA exprs+=expr)*)? RPAREN #call
- | IF cond=expr THEN thenExpr=expr ELSE elseExpr=expr FI #ifbranch
- | WHILE cond=expr LOOP loopexpr=expr POOL #while
- | LBRACE (exprs+=expr SEMI)+ RBRACE #exprblock
- | LET formals+=formal
- (COMMA formals+=formal)*
- IN block=expr #let
- | CASE field=expr OF (branches+=casebranch)+ ESAC #case
- | NEW type=TYPE #newtype
- | ISVOID e=expr #isvoid
- | left=expr op=(MULT | DIV) right=expr #multDiv
- | left=expr op=(PLUS | MINUS) right=expr #plusMinus
- | NEG expression=expr #negexpr
- | left=expr op=(LE | LT) right=expr #relational
- | left=expr op=EQUAL right=expr #equal
- | NOT expression=expr #notexpr
- | name=ID ASSIGN e=expr #assignexpr
- | LPAREN expression=expr RPAREN #paren
- | ID #id
- | INT #int
- | STRING #string
- | TRUE #booltrue
- | FALSE #boolfalse
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement