Guest User

Untitled

a guest
Oct 17th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. grammar foo;
  2.  
  3.  
  4. start : (expression)*;
  5.  
  6. expression: function
  7. | assignment
  8. | INT
  9. ;
  10.  
  11. function: IDENT LPAR parameterList RPAR;
  12.  
  13. parameterList: expression (',' expression)*;
  14.  
  15. assignment: IDENT '=' expression;
  16.  
  17.  
  18. IDENT : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
  19. ;
  20.  
  21. INT : '0'..'9'+
  22. ;
  23.  
  24. FLOAT
  25. : ('0'..'9')+ '.' ('0'..'9')* EXPONENT?
  26. | '.' ('0'..'9')+ EXPONENT?
  27. | ('0'..'9')+ EXPONENT
  28. ;
  29.  
  30. WS : ( ' '
  31. | '\t'
  32. | '\r'
  33. | '\n'
  34. ) {$channel=HIDDEN;}
  35. ;
  36.  
  37. STRING
  38. : '"' ( ESC_SEQ | ~('\\'|'"') )* '"'
  39. ;
  40.  
  41. fragment
  42. EXPONENT : ('e'|'E') ('+'|'-')? ('0'..'9')+ ;
  43.  
  44. fragment
  45. HEX_DIGIT : ('0'..'9'|'a'..'f'|'A'..'F') ;
  46.  
  47. fragment
  48. ESC_SEQ
  49. : '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\')
  50. | UNICODE_ESC
  51. | OCTAL_ESC
  52. ;
  53.  
  54. fragment
  55. OCTAL_ESC
  56. : '\\' ('0'..'3') ('0'..'7') ('0'..'7')
  57. | '\\' ('0'..'7') ('0'..'7')
  58. | '\\' ('0'..'7')
  59. ;
  60.  
  61. LPAR : '(';
  62. RPAR : ')';
  63.  
  64. fragment
  65. UNICODE_ESC
  66. : '\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
  67. ;
Add Comment
Please, Sign In to add comment