Advertisement
Guest User

asd

a guest
Feb 22nd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.52 KB | None | 0 0
  1. grammar Ass2;
  2.  
  3. prog
  4. : code
  5. ;
  6.  
  7. code
  8. : statement+
  9. | EOF
  10. ;
  11.  
  12. statement
  13. : expr NEWLINE
  14. | loop NEWLINE
  15. | ID '=' expr NEWLINE
  16. | NEWLINE
  17. ;
  18.  
  19. loop
  20. : WHILE expr
  21. ;
  22.  
  23. expr
  24. : expr op=('*'|'/') expr #MulDiv
  25. | expr op=('+'|'-') expr #AddSub
  26. | expr op=(GT|LT|GTEQ|LTEQ) expr #Comp
  27. | INT #Integer
  28. | ID #Identifier
  29. | '(' expr ')' #Parens
  30. | expr '(' expr ')' #MulPar
  31. ;
  32.  
  33. GT: '>';
  34. LT: '<';
  35. GTEQ: '>=';
  36. LTEQ: '<=';
  37. WHILE: 'while';
  38. ID: [A-Za-z_][A-Za-z_0-9]* ;
  39. INT: [0-9]+ ;
  40. NEWLINE: '\r'? '\n' ;
  41. WS: [ \t]+ -> skip;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement