Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. grammar PRDL;
  2.  
  3. options
  4. {
  5. language=CSharp;
  6. }
  7.  
  8. statement
  9. : expression ( logicalOperator expression )*
  10. ;
  11.  
  12. logicalOperator
  13. : logicalOR | logicalAND
  14. ;
  15.  
  16. logicalOR
  17. : OR
  18. ;
  19.  
  20. logicalAND
  21. : AND
  22. ;
  23.  
  24. expression
  25. : mVar
  26. | nVar
  27. | parenStatement
  28. | notExpression
  29. ;
  30.  
  31. parenStatement
  32. : LPAREN statement RPAREN
  33. ;
  34.  
  35. notExpression
  36. : NOT expression
  37. ;
  38.  
  39. mVar
  40. : M equalityOperator quotedIdentifier
  41. ;
  42.  
  43. nVar
  44. : N equalityOperator quotedIdentifier
  45. ;
  46.  
  47. equalityOperator
  48. : EQUAL
  49. ;
  50.  
  51. quotedIdentifier
  52. : '"' identifier '"'
  53. ;
  54.  
  55. identifier
  56. : (HIGHCHAR | LOWCHAR | DIGIT)+
  57. ;
  58.  
  59.  
  60. // ============ Lexer Defintions ========================
  61.  
  62. // OPERATORS
  63.  
  64. NOT_ALLOWED : '*' | '/' | '+' | '-' | '#' | '$' | '%' | '^';
  65.  
  66. EQUAL : '=';
  67.  
  68. COMMA : ',';
  69.  
  70. LPAREN : '(';
  71.  
  72. RPAREN : ')';
  73.  
  74. LPARENSQ : '[';
  75.  
  76. RPARENSQ : ']';
  77.  
  78. OR : ('OR' | 'or' | '||');
  79.  
  80. AND : ('AND' | 'and' | '&&');
  81.  
  82. NOT : ('NOT' | 'not' | '!') ;
  83.  
  84. M : '@M';
  85.  
  86. N : '@N';
  87.  
  88. LOWCHAR : 'a'..'z';
  89.  
  90. HIGHCHAR : 'A'..'Z';
  91.  
  92. DIGIT : '0'..'9';
  93.  
  94.  
  95. // Whitespace -- ignored
  96. WS : [ ntrf]+ -> skip;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement