"\1\2\5\uffff\1\2\4\uffff\1\2\7\uffff\10\2\1\uffff\25\2\1\uffff"+
"\4\2\1\uffff\2\2\1\uffff\4\2\1\uffff\3\2\1\uffff\1\2\1\uffff"+
return "68:1: groupingSetExpression : ( ( LPAREN )=> groupingSetExpressionMultiple | groupingExpressionSingle );";
@init {gParent.pushMsg("grouping set expression", state); }
@after {gParent.popMsg(state); }
:
(LPAREN) => groupingSetExpressionMultiple
|
groupingExpressionSingle
;
groupingSetExpressionMultiple
@init {gParent.pushMsg("grouping set part expression", state); }
@after {gParent.popMsg(state); }
:
LPAREN
expression? (COMMA expression)*
RPAREN
-> ^(TOK_GROUPING_SETS_EXPRESSION expression*)
;
groupingExpressionSingle
@init { gParent.pushMsg("groupingExpression expression", state); }
@after { gParent.popMsg(state); }
:
expression -> ^(TOK_GROUPING_SETS_EXPRESSION expression)
;
I have read the previous posts about dividing a single rule to multiple rules to resolve the problem. However, I think groupingSetExpression rule is already simple enough. I have also tried to divide other rules, but it seems that it does not work.
Could anybody help us on this? Any suggestions are welcome. Thanks!
Best
Pengcheng