@@ -847,16 +847,14 @@ ShowStatement Show(): {
847847}
848848
849849ValuesStatement Values(): {
850- List<Expression> expList = new ArrayList<Expression>();
851- Expression exp;
850+ ItemsList itemsList;
852851} {
853852 <K_VALUES>
854- "("
855- exp=PrimaryExpression() { expList.add(exp); }
856- ("," exp=PrimaryExpression() { expList.add(exp); } )*
857- ")"
853+
854+ itemsList = SimpleExpressionList(false)
855+
858856 {
859- return new ValuesStatement(expList );
857+ return new ValuesStatement(itemsList );
860858 }
861859}
862860
@@ -1891,7 +1889,7 @@ ExpressionListItem ExpressionListItem():
18911889}
18921890{
18931891 "("
1894- expressionList=SimpleExpressionList() { expressionListItem = new ExpressionListItem(); expressionListItem.setExpressionList(expressionList); }
1892+ expressionList=SimpleExpressionList(true ) { expressionListItem = new ExpressionListItem(); expressionListItem.setExpressionList(expressionList); }
18951893 ")"
18961894 [alias=Alias() { expressionListItem.setAlias(alias); }]
18971895 { return expressionListItem; }
@@ -2330,11 +2328,11 @@ GroupByElement GroupByColumnReferences():
23302328 |
23312329 <K_GROUPING> <K_SETS> "("
23322330 ( LOOKAHEAD(2) "(" ")" { groupBy.addGroupingSet(new ExpressionList()); }
2333- | LOOKAHEAD(3) "(" list = SimpleExpressionList() ")" { groupBy.addGroupingSet(list); }
2331+ | LOOKAHEAD(3) "(" list = SimpleExpressionList(true ) ")" { groupBy.addGroupingSet(list); }
23342332 | expr = SimpleExpression() { groupBy.addGroupingSet(expr); } )
23352333
23362334 ( "," ( LOOKAHEAD(2) "(" ")" { groupBy.addGroupingSet(new ExpressionList()); }
2337- | LOOKAHEAD(3) "(" list = SimpleExpressionList() ")" { groupBy.addGroupingSet(list); }
2335+ | LOOKAHEAD(3) "(" list = SimpleExpressionList(true ) ")" { groupBy.addGroupingSet(list); }
23382336 | expr = SimpleExpression() { groupBy.addGroupingSet(expr); } ) )*
23392337 ")"
23402338 )
@@ -2798,7 +2796,7 @@ Expression InExpression() #InExpression :
27982796}
27992797{
28002798 ( LOOKAHEAD(3) "(" (
2801- LOOKAHEAD(SimpleExpressionList()) leftItemsList = SimpleExpressionList() { result.setLeftItemsList(leftItemsList); }
2799+ LOOKAHEAD(SimpleExpressionList(true )) leftItemsList = SimpleExpressionList(true ) { result.setLeftItemsList(leftItemsList); }
28022800 |
28032801 leftExpression=SimpleExpression()
28042802 [ "(" "+" ")" { result.setOldOracleJoinSyntax(EqualsTo.ORACLE_JOIN_RIGHT); } ]
@@ -2814,7 +2812,7 @@ Expression InExpression() #InExpression :
28142812 LOOKAHEAD(3) multiExpressionList = MultiInExpressions()
28152813 | LOOKAHEAD(3) rightExpression = Function()
28162814 | LOOKAHEAD(2) token=<S_CHAR_LITERAL> { rightExpression = new StringValue(token.image); }
2817- | LOOKAHEAD(3) "(" (LOOKAHEAD(3) rightItemsList=SubSelect() | rightItemsList=SimpleExpressionList() )")"
2815+ | LOOKAHEAD(3) "(" (LOOKAHEAD(3) rightItemsList=SubSelect() | rightItemsList=SimpleExpressionList(true ) )")"
28182816 | rightExpression = SimpleExpression()
28192817 )
28202818 {
@@ -2833,15 +2831,15 @@ MultiExpressionList MultiInExpressions():
28332831}
28342832{
28352833 "(" "("
2836- expressionList=SimpleExpressionList() {
2834+ expressionList=SimpleExpressionList(true ) {
28372835 if(multiExpressionList == null) {
28382836 multiExpressionList = new MultiExpressionList();
28392837 }
28402838 multiExpressionList.addExpressionList(expressionList);
28412839 }
28422840 // potentially additional expression lists
28432841 ( LOOKAHEAD(3)
2844- ")" "," "(" expressionList=SimpleExpressionList()
2842+ ")" "," "(" expressionList=SimpleExpressionList(true )
28452843 {
28462844 if(multiExpressionList == null) {
28472845 multiExpressionList = new MultiExpressionList();
@@ -2962,9 +2960,9 @@ ExpressionList SQLExpressionList():
29622960 }
29632961}
29642962
2965- ExpressionList SimpleExpressionList() #ExpressionList:
2963+ ExpressionList SimpleExpressionList(boolean outerBrackets ) #ExpressionList:
29662964{
2967- ExpressionList retval = new ExpressionList();
2965+ ExpressionList retval = new ExpressionList().withBrackets(outerBrackets) ;
29682966 List<Expression> expressions = new ArrayList<Expression>();
29692967 Expression expr = null;
29702968}
@@ -3370,7 +3368,7 @@ Expression PrimaryExpression() #PrimaryExpression:
33703368
33713369 | LOOKAHEAD("(" retval=SubSelect() ")") "(" retval=SubSelect() ")"
33723370
3373- | "(" list = SimpleExpressionList() ")"
3371+ | "(" list = SimpleExpressionList(true ) ")"
33743372 {
33753373 if (list.getExpressions().size() == 1) {
33763374 retval = new Parenthesis(list.getExpressions().get(0));
@@ -3737,7 +3735,7 @@ RowConstructor RowConstructor(): {
37373735} {
37383736 [ <K_ROW> { rowConstructor.setName("ROW");} ]
37393737 "("
3740- list = SimpleExpressionList()
3738+ list = SimpleExpressionList(true )
37413739 ")"
37423740
37433741 {
@@ -3781,9 +3779,9 @@ Execute Execute(): {
37813779 ( "," expr = VariableExpression() { namedExprList.add(expr); })*
37823780 { expressionList = new ExpressionList(namedExprList); } )
37833781 |
3784- LOOKAHEAD(3) expressionList=SimpleExpressionList()
3782+ LOOKAHEAD(3) expressionList=SimpleExpressionList(true )
37853783 |
3786- ("(" expressionList=SimpleExpressionList() ")" { execute.setParenthesis(true); })
3784+ ("(" expressionList=SimpleExpressionList(true ) ")" { execute.setParenthesis(true); })
37873785 )?
37883786
37893787 {
@@ -3882,7 +3880,7 @@ Function InternalFunction(Function retval) :
38823880 |
38833881 LOOKAHEAD(NamedExpressionListExprFirst()) namedExpressionList = NamedExpressionListExprFirst()
38843882 |
3885- LOOKAHEAD(3) (expressionList=SimpleExpressionList() [ orderByList = OrderByElements() { retval.setOrderByElements(orderByList); } ])
3883+ LOOKAHEAD(3) (expressionList=SimpleExpressionList(true ) [ orderByList = OrderByElements() { retval.setOrderByElements(orderByList); } ])
38863884 |
38873885 expr = SubSelect() { expr.setUseBrackets(false); expressionList = new ExpressionList(expr); }
38883886
@@ -3940,7 +3938,7 @@ MySQLGroupConcat MySQLGroupConcat():{
39403938{
39413939 <K_GROUP_CONCAT> "("
39423940 [<K_DISTINCT> { retval.setDistinct(true); } ]
3943- expressionList = SimpleExpressionList()
3941+ expressionList = SimpleExpressionList(true )
39443942 [ orderByList = OrderByElements() { retval.setOrderByElements(orderByList); } ]
39453943 [ <K_SEPARATOR> t=<S_CHAR_LITERAL> { retval.setSeparator(t.image); } ]
39463944 ")"
0 commit comments