Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. expr
  2. : curr=expr (AR_DISPATCH type=TYPE)? dis=DISPATCH name=ID
  3. LPAREN (exprs+=expr (COMMA exprs+=expr)*)? RPAREN #dispatchcall
  4. | name=ID LPAREN (exprs+=expr (COMMA exprs+=expr)*)? RPAREN #call
  5. | IF cond=expr THEN thenExpr=expr ELSE elseExpr=expr FI #ifbranch
  6. | WHILE cond=expr LOOP loopexpr=expr POOL #while
  7. | LBRACE (exprs+=expr SEMI)+ RBRACE #exprblock
  8. | LET formals+=formal
  9. (COMMA formals+=formal)*
  10. IN block=expr #let
  11. | CASE field=expr OF (branches+=casebranch)+ ESAC #case
  12. | NEW type=TYPE #newtype
  13. | ISVOID e=expr #isvoid
  14. | left=expr op=(MULT | DIV) right=expr #multDiv
  15. | left=expr op=(PLUS | MINUS) right=expr #plusMinus
  16. | NEG expression=expr #negexpr
  17. | left=expr op=(LE | LT) right=expr #relational
  18. | left=expr op=EQUAL right=expr #equal
  19. | NOT expression=expr #notexpr
  20. | name=ID ASSIGN e=expr #assignexpr
  21. | LPAREN expression=expr RPAREN #paren
  22. | ID #id
  23. | INT #int
  24. | STRING #string
  25. | TRUE #booltrue
  26. | FALSE #boolfalse
  27. ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement