+expr: namespaceSpecifier* funcName '(' (expr (',' expr)*)? ')' #funcExpr\r
+ | expr '.' funcName '(' (expr (',' expr)*)? ')' #methodExpr\r
+ | literal #litExpr\r
+ | '(' expr ')' #parenExpr\r
+ | expr '.' varName #dotExpr\r
+ | prefix_op expr #prefixOpExpr\r
+ | expr postfix_op #postfixOpExpr\r
+ | expr binary_op expr #binaryOpExpr\r
+ | expr '?' expr ':' expr #ternaryOpExpr\r
+ | expr '[' expr ']' #bracketExpr\r
+ | namespaceSpecifier* varName #identifierExpr\r
+ ;\r