@@ -2259,15 +2259,18 @@ Expression RegularCondition() #RegularCondition:
2259
2259
Expression SQLCondition():
2260
2260
{
2261
2261
Expression result;
2262
+ Expression left;
2262
2263
}
2263
2264
{
2264
2265
(
2265
2266
result=ExistsExpression()
2266
2267
| LOOKAHEAD(InExpression()) result=InExpression()
2267
- | LOOKAHEAD(Between()) result=Between()
2268
- | LOOKAHEAD(IsNullExpression()) result=IsNullExpression()
2269
- | LOOKAHEAD(3) result=LikeExpression()
2270
- | result=SimilarToExpression()
2268
+ | left = SimpleExpression()
2269
+ (LOOKAHEAD(2) result=Between(left)
2270
+ | LOOKAHEAD(2) result=IsNullExpression(left)
2271
+ | LOOKAHEAD(2) result=LikeExpression(left)
2272
+ | result=SimilarToExpression(left)
2273
+ )
2271
2274
)
2272
2275
{ return result; }
2273
2276
}
@@ -2299,15 +2302,13 @@ Expression InExpression() #InExpression :
2299
2302
}
2300
2303
}
2301
2304
2302
- Expression Between() :
2305
+ Expression Between(Expression leftExpression ) :
2303
2306
{
2304
2307
Between result = new Between();
2305
- Expression leftExpression = null;
2306
2308
Expression betweenExpressionStart = null;
2307
2309
Expression betweenExpressionEnd = null;
2308
2310
}
2309
2311
{
2310
- leftExpression=SimpleExpression()
2311
2312
[<K_NOT> { result.setNot(true); }]
2312
2313
<K_BETWEEN> betweenExpressionStart=SimpleExpression() <K_AND> betweenExpressionEnd=SimpleExpression()
2313
2314
@@ -2319,14 +2320,12 @@ Expression Between() :
2319
2320
}
2320
2321
}
2321
2322
2322
- Expression LikeExpression() #LikeExpression:
2323
+ Expression LikeExpression(Expression leftExpression ) #LikeExpression:
2323
2324
{
2324
2325
LikeExpression result = new LikeExpression();
2325
- Expression leftExpression = null;
2326
2326
Expression rightExpression = null;
2327
2327
}
2328
2328
{
2329
- leftExpression=SimpleExpression()
2330
2329
[<K_NOT> { result.setNot(true); } ] ( <K_LIKE> | <K_ILIKE> { result.setCaseInsensitive(true); } ) rightExpression=SimpleExpression()
2331
2330
[<K_ESCAPE> token=<S_CHAR_LITERAL> { result.setEscape((new StringValue(token.image)).getValue()); }]
2332
2331
{
@@ -2337,14 +2336,12 @@ Expression LikeExpression() #LikeExpression:
2337
2336
}
2338
2337
}
2339
2338
2340
- Expression SimilarToExpression() #SimilarToExpression:
2339
+ Expression SimilarToExpression(Expression leftExpression ) #SimilarToExpression:
2341
2340
{
2342
2341
SimilarToExpression result = new SimilarToExpression();
2343
- Expression leftExpression = null;
2344
2342
Expression rightExpression = null;
2345
2343
}
2346
2344
{
2347
- leftExpression=SimpleExpression()
2348
2345
[<K_NOT> { result.setNot(true); } ]
2349
2346
<K_SIMILAR> <K_TO>
2350
2347
rightExpression=SimpleExpression()
@@ -2357,13 +2354,11 @@ Expression SimilarToExpression() #SimilarToExpression:
2357
2354
}
2358
2355
}
2359
2356
2360
- Expression IsNullExpression():
2357
+ Expression IsNullExpression(Expression leftExpression ):
2361
2358
{
2362
2359
IsNullExpression result = new IsNullExpression();
2363
- Expression leftExpression = null;
2364
2360
}
2365
2361
{
2366
- leftExpression=SimpleExpression()
2367
2362
(<K_ISNULL> { result.setUseIsNull(true); } | <K_IS> [<K_NOT> { result.setNot(true); } ] <K_NULL> )
2368
2363
2369
2364
{
0 commit comments