@@ -2149,6 +2149,22 @@ Expression Condition():
2149
2149
{ return not?new NotExpression(result):result; }
2150
2150
}
2151
2151
2152
+ Expression LightCondition():
2153
+ {
2154
+ Expression result;
2155
+ Token token;
2156
+ boolean not = false;
2157
+ }
2158
+ {
2159
+ [ <K_NOT> { not = true; }]
2160
+ (
2161
+ LOOKAHEAD(RegularCondition()) result=RegularCondition()
2162
+ | result=SimpleExpression()
2163
+ )
2164
+
2165
+ { return not?new NotExpression(result):result; }
2166
+ }
2167
+
2152
2168
Expression RegularCondition() #RegularCondition:
2153
2169
{
2154
2170
Expression result = null;
@@ -2349,6 +2365,20 @@ ExpressionList SimpleExpressionList() #ExpressionList:
2349
2365
}
2350
2366
}
2351
2367
2368
+ ExpressionList ConditionExpressionList() #ExpressionList:
2369
+ {
2370
+ ExpressionList retval = new ExpressionList();
2371
+ List<Expression> expressions = new ArrayList<Expression>();
2372
+ Expression expr = null;
2373
+ }
2374
+ {
2375
+ expr=Condition() { expressions.add(expr); } ("," expr=Condition() { expressions.add(expr); })*
2376
+ {
2377
+ retval.setExpressions(expressions);
2378
+ return retval;
2379
+ }
2380
+ }
2381
+
2352
2382
// trim( [leading|trailing|both] expr from expr)
2353
2383
// The [leading|trailing|both] token has already been consumed
2354
2384
NamedExpressionList NamedExpressionList1():
@@ -2678,7 +2708,7 @@ Expression PrimaryExpression() #PrimaryExpression:
2678
2708
2679
2709
| LOOKAHEAD(2) retval = IntervalExpression()
2680
2710
2681
- | retval=Column()
2711
+ | retval=Column()
2682
2712
2683
2713
| LOOKAHEAD("(" SimpleExpression() ")") "(" retval=SimpleExpression() ")" {retval = new Parenthesis(retval); }
2684
2714
@@ -3071,15 +3101,17 @@ Function Function() #Function:
3071
3101
funcName=RelObjectNameExt()
3072
3102
3073
3103
[ "." tmp=RelObjectNameExt() { funcName+= "." + tmp; } ["." tmp=RelObjectNameExt() { funcName+= "." + tmp; }]]
3074
- "(" [ [<K_DISTINCT> { retval.setDistinct(true); } | <K_ALL> { retval.setAllColumns(true); }]
3104
+ "(" [ [ LOOKAHEAD(2)( <K_DISTINCT> { retval.setDistinct(true); } | <K_ALL> { retval.setAllColumns(true); }) ]
3075
3105
( LOOKAHEAD(4)
3106
+ "*" { retval.setAllColumns(true); }
3107
+ |
3076
3108
namedExpressionList=NamedExpressionList1()
3077
3109
|
3078
3110
LOOKAHEAD(NamedExpressionListExprFirst()) namedExpressionList = NamedExpressionListExprFirst()
3079
- |
3080
- LOOKAHEAD(3) expressionList=SimpleExpressionList()
3081
3111
|
3082
- "*" { retval.setAllColumns(true); }
3112
+ LOOKAHEAD(SimpleExpressionList()) expressionList=SimpleExpressionList()
3113
+ //|
3114
+ //LOOKAHEAD(ConditionExpressionList()) expressionList=ConditionExpressionList()
3083
3115
|
3084
3116
expr = SubSelect() { expr.setUseBrackets(false); expressionList = new ExpressionList(expr); }
3085
3117
)]
0 commit comments