interpolation

textFrag expression EOF

textFrag

TEXT_PART ESC_EXPR DOLLAR

expression

EXPR_START _ exprNode optionList _ EXPR_END

optionList

_ OPTION_SEP _ option _ COMMA _ option

option

ID _ ASSIGN _ exprNode

exprNode

orBinaryOp _ TERNARY_Q_OP _ orBinaryOp _ TERNARY_BRANCHES_OP _ orBinaryOp orBinaryOp

orBinaryOp

andBinaryOp _ OR_OP _ andBinaryOp

andBinaryOp

inBinaryOp _ AND_OP _ inBinaryOp

inBinaryOp

comparisonTerm _ IN_OP _ comparisonTerm

comparisonTerm

factor factor _ comparisonOp _ factor

comparisonOp

GT LT LEQ GEQ EQ NEQ

factor

term NOT_OP _ term

term

simple ARRAY_START _ exprNode _ ARRAY_END DOT field

field

ID

simple

atom LBRACKET exprNode RBRACKET ARRAY_START _ valueList _ ARRAY_END

valueList

exprNode _ COMMA _ exprNode

atom

D_STRING S_STRING ID FLOAT INT BOOL_CONSTANT

_

WS COMMENT