9 COMPAREOP : '==' | '!=' | '>' | '<' | '>=' | '<=';
19 STRING : '\'' ~[\']* '\'';
21 IDENTIFIER : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'-')*;
23 // CONTEXT_VAR : '$' IDENTIFIER;
25 WS: [ \n\t\r]+ -> skip;
27 constant : NUMBER | STRING ;
29 variableLead : ('$')? variableTerm ;
31 variableTerm : IDENTIFIER ('[' expr ']')? ;
33 variable : variableLead ('.' variableTerm)* ('.')?;
35 // variable : CONTEXT_VAR ( '[' expr ']' )? ('.' IDENTIFIER )? ;
37 atom : constant | variable;
48 parenExpr : '(' expr ')';
50 term : atom | parenExpr | funcExpr;
52 multExpr : term (MULTOP term)*;
54 addExpr : multExpr (ADDOP multExpr)*;
56 compareExpr : addExpr COMPAREOP addExpr;
58 relExpr : compareExpr (RELOP expr)*;
60 funcExpr : IDENTIFIER '(' expr (',' expr)* ')';