Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar PRDL;
- options
- {
- language=CSharp;
- }
- statement
- : expression ( logicalOperator expression )*
- ;
- logicalOperator
- : logicalOR | logicalAND
- ;
- logicalOR
- : OR
- ;
- logicalAND
- : AND
- ;
- expression
- : mVar
- | nVar
- | parenStatement
- | notExpression
- ;
- parenStatement
- : LPAREN statement RPAREN
- ;
- notExpression
- : NOT expression
- ;
- mVar
- : M equalityOperator quotedIdentifier
- ;
- nVar
- : N equalityOperator quotedIdentifier
- ;
- equalityOperator
- : EQUAL
- ;
- quotedIdentifier
- : '"' identifier '"'
- ;
- identifier
- : (HIGHCHAR | LOWCHAR | DIGIT)+
- ;
- // ============ Lexer Defintions ========================
- // OPERATORS
- NOT_ALLOWED : '*' | '/' | '+' | '-' | '#' | '$' | '%' | '^';
- EQUAL : '=';
- COMMA : ',';
- LPAREN : '(';
- RPAREN : ')';
- LPARENSQ : '[';
- RPARENSQ : ']';
- OR : ('OR' | 'or' | '||');
- AND : ('AND' | 'and' | '&&');
- NOT : ('NOT' | 'not' | '!') ;
- M : '@M';
- N : '@N';
- LOWCHAR : 'a'..'z';
- HIGHCHAR : 'A'..'Z';
- DIGIT : '0'..'9';
- // Whitespace -- ignored
- WS : [ ntrf]+ -> skip;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement