@@ -132,160 +132,160 @@ SKIP:
132
132
133
133
TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
134
134
{
135
- <K_AS: "AS">
136
- | <K_BY:"BY">
137
- | <K_DO:"DO">
138
- | <K_IS:"IS">
139
- | <K_IN:"IN">
140
- | <K_OR:"OR">
141
- | <K_ON:"ON">
135
+ <K_ACTION: "ACTION">
136
+ | <K_ADD:"ADD">
142
137
| <K_ALL:"ALL">
138
+ | <K_ALTER:"ALTER">
143
139
| <K_AND:"AND">
144
140
| <K_ANY:"ANY">
145
- | <K_KEY:"KEY">
146
- | <K_NOT:"NOT">
147
- | <K_SET:"SET">
141
+ | <K_AS: "AS">
148
142
| <K_ASC:"ASC">
149
- | <K_TOP:"TOP">
150
- | <K_PERCENT:"PERCENT">
151
- | <K_END:"END">
143
+ | <K_BEGIN:"BEGIN">
144
+ | <K_BETWEEN:"BETWEEN">
145
+ | <K_BINARY: "BINARY">
146
+ | <K_BIT:"BIT">
147
+ | <K_BY:"BY">
148
+ | <K_CALL : "CALL">
149
+ | <K_CASCADE: "CASCADE">
150
+ | <K_CASE:"CASE">
151
+ | <K_CAST:"CAST">
152
+ | <K_CHARACTER:"CHARACTER">
153
+ | <K_CHECK:"CHECK">
154
+ | <K_COLUMN:"COLUMN">
155
+ | <K_COMMIT:"COMMIT">
156
+ | <K_CONNECT:"CONNECT">
157
+ | <K_CONSTRAINT:"CONSTRAINT">
158
+ | <K_CREATE:"CREATE">
159
+ | <K_CROSS:"CROSS">
160
+ | <K_CURRENT: "CURRENT">
161
+ | <K_DATETIMELITERAL : ("DATE" | "TIME" | "TIMESTAMP") >
162
+ | <K_DEFERRABLE : "DEFERRABLE">
163
+ | <K_DELAYED : "DELAYED">
164
+ | <K_DELETE:"DELETE">
152
165
| <K_DESC:"DESC">
153
- | <K_INTO:"INTO ">
154
- | <K_NULL:"NULL ">
155
- | <K_LIKE:"LIKE ">
156
- | <K_ILIKE:"ILIKE ">
166
+ | <K_DISABLE : "DISABLE ">
167
+ | <K_DISTINCT:"DISTINCT ">
168
+ | <K_DO:"DO ">
169
+ | <K_DOUBLE : "DOUBLE ">
157
170
| <K_DROP:"DROP">
158
- | <K_JOIN:"JOIN">
159
- | <K_LEFT:"LEFT">
160
- | <K_CROSS:"CROSS">
161
- | <K_FROM:"FROM">
162
- | <K_OPEN:"OPEN">
163
- | <K_CASE:"CASE">
164
- | <K_WHEN:"WHEN">
165
- | <K_THEN:"THEN">
171
+ | <K_DUPLICATE: "DUPLICATE">
166
172
| <K_ELSE:"ELSE">
167
- | <K_SOME:"SOME">
168
- | <K_FULL:"FULL">
169
- | <K_WITH:"WITH">
170
- | <K_WITHOUT:"WITHOUT">
171
- | <K_TABLE:"TABLE">
172
- | <K_VIEW:"VIEW">
173
- | <K_WHERE:"WHERE">
173
+ | <K_ENABLE : "ENABLE">
174
+ | <K_END:"END">
175
+ | <K_ESCAPE:"ESCAPE">
176
+ | <K_EXCEPT:"EXCEPT">
177
+ | <K_EXCLUDE : "EXCLUDE">
178
+ | <K_EXEC: "EXEC">
179
+ | <K_EXECUTE: "EXECUTE">
180
+ | <K_EXISTS:"EXISTS">
181
+ | <K_EXTRACT:"EXTRACT">
182
+ | <K_FETCH:"FETCH">
183
+ | <K_FIRST: "FIRST">
184
+ | <K_FOLLOWING: "FOLLOWING">
174
185
| <K_FOR:"FOR">
175
- | <K_PIVOT:"PIVOT">
176
- | <K_XML:"XML">
177
- | <K_USING:"USING">
178
- | <K_UNION:"UNION">
186
+ | <K_FORCE : "FORCE">
187
+ | <K_FOREIGN:"FOREIGN">
188
+ | <K_FROM:"FROM">
189
+ | <K_FULL:"FULL">
190
+ | <K_FULLTEXT:"FULLTEXT">
179
191
| <K_GROUP:"GROUP">
180
- | <K_BEGIN:"BEGIN">
192
+ | <K_GROUP_CONCAT:"GROUP_CONCAT">
193
+ | <K_HAVING:"HAVING">
194
+ | <K_HIGH_PRIORITY : "HIGH_PRIORITY">
195
+ | <K_IF:"IF">
196
+ | <K_IGNORE : "IGNORE">
197
+ | <K_ILIKE:"ILIKE">
198
+ | <K_IN:"IN">
181
199
| <K_INDEX: "INDEX">
182
200
| <K_INNER:"INNER">
183
- | <K_LIMIT:"LIMIT">
184
- | <K_OUTER:"OUTER">
185
- | <K_ORDER:"ORDER">
186
- | <K_RIGHT:"RIGHT">
187
- | <K_VALUE:"VALUE">
188
- | <K_DELETE:"DELETE">
189
- | <K_CREATE:"CREATE">
190
- | <K_SELECT:"SELECT">
191
- | <K_OFFSET:"OFFSET">
192
- | <K_EXISTS:"EXISTS">
193
- | <K_HAVING:"HAVING">
194
201
| <K_INSERT:"INSERT">
195
- | <K_UPDATE:"UPDATE">
196
- | <K_UPSERT:"UPSERT">
197
- | <K_VALUES:"VALUES">
198
- | <K_ESCAPE:"ESCAPE">
199
- | <K_PRIMARY:"PRIMARY">
200
- | <K_FULLTEXT:"FULLTEXT">
201
- | <K_NATURAL:"NATURAL">
202
- | <K_REPLACE:"REPLACE">
203
- | <K_BETWEEN:"BETWEEN">
204
- | <K_TRUNCATE:"TRUNCATE">
205
- | <K_DISTINCT:"DISTINCT">
206
202
| <K_INTERSECT:"INTERSECT">
207
- | <K_CAST:"CAST">
208
- | <K_EXCEPT:"EXCEPT">
209
- | <K_MINUS:"MINUS">
210
- | <K_OVER:"OVER">
211
- | <K_PARTITION:"PARTITION">
212
- | <K_EXTRACT:"EXTRACT">
213
- | <K_LATERAL:"LATERAL">
214
- | <K_MATERIALIZED:"MATERIALIZED">
215
203
| <K_INTERVAL:"INTERVAL">
216
- | <K_FOREIGN:"FOREIGN">
217
- | <K_CONSTRAINT:"CONSTRAINT">
218
- | <K_REFERENCES:"REFERENCES">
219
- | <K_CHECK:"CHECK">
220
- | <K_CHARACTER:"CHARACTER">
221
- | <K_BIT:"BIT">
222
- | <K_VARYING:"VARYING">
223
- | <K_START:"START">
224
- | <K_CONNECT:"CONNECT">
225
- | <K_PRIOR:"PRIOR">
226
- | <K_NOCYCLE:"NOCYCLE">
227
- | <K_SIBLINGS:"SIBLINGS">
228
- | <K_ALTER:"ALTER">
229
- | <K_ADD:"ADD">
230
- | <K_MODIFY: "MODIFY">
231
- | <K_COLUMN:"COLUMN">
232
- | <K_NULLS: "NULLS">
233
- | <K_FIRST: "FIRST">
204
+ | <K_INTO:"INTO">
205
+ | <K_IS:"IS">
206
+ | <K_JOIN:"JOIN">
207
+ | <K_KEEP:"KEEP">
208
+ | <K_KEY:"KEY">
234
209
| <K_LAST: "LAST">
235
- | <K_ROWS: "ROWS">
236
- | <K_RANGE: "RANGE">
237
- | <K_UNBOUNDED: "UNBOUNDED">
238
- | <K_PRECEDING: "PRECEDING">
239
- | <K_FOLLOWING: "FOLLOWING">
240
- | <K_CURRENT: "CURRENT">
241
- | <K_ROW: "ROW">
242
- | <K_RETURNING: "RETURNING">
243
- | <K_BINARY: "BINARY">
244
- | <K_REGEXP: "REGEXP">
245
- | <K_UNLOGGED: "UNLOGGED">
246
- | <K_EXEC: "EXEC">
247
- | <K_EXECUTE: "EXECUTE">
248
- | <K_FETCH:"FETCH">
210
+ | <K_LATERAL:"LATERAL">
211
+ | <K_LEFT:"LEFT">
212
+ | <K_LIKE:"LIKE">
213
+ | <K_LIMIT:"LIMIT">
214
+ | <K_LOW_PRIORITY : "LOW_PRIORITY">
215
+ | <K_MATCHED: "MATCHED">
216
+ | <K_MATERIALIZED:"MATERIALIZED">
217
+ | <K_MERGE: "MERGE">
218
+ | <K_MINUS:"MINUS">
219
+ | <K_MODIFY: "MODIFY">
220
+ | <K_NATURAL:"NATURAL">
249
221
| <K_NEXT:"NEXT">
222
+ | <K_NO:"NO">
223
+ | <K_NOCYCLE:"NOCYCLE">
224
+ | <K_NOT:"NOT">
225
+ | <K_NOVALIDATE : "NOVALIDATE">
226
+ | <K_NULL:"NULL">
227
+ | <K_NULLS: "NULLS">
228
+ | <K_OF:"OF">
229
+ | <K_OFFSET:"OFFSET">
230
+ | <K_ON:"ON">
250
231
| <K_ONLY:"ONLY">
251
- | <K_COMMIT:"COMMIT">
252
- | <K_UNIQUE:"UNIQUE">
253
- | <K_WITHIN:"WITHIN">
254
- | <K_IF:"IF">
232
+ | <K_OPEN:"OPEN">
233
+ | <K_OR:"OR">
234
+ | <K_ORDER:"ORDER">
235
+ | <K_OUTER:"OUTER">
236
+ | <K_OVER:"OVER">
237
+ | <K_PARTITION:"PARTITION">
238
+ | <K_PERCENT:"PERCENT">
239
+ | <K_PIVOT:"PIVOT">
240
+ | <K_PRECEDING: "PRECEDING">
241
+ | <K_PRECISION : "PRECISION">
242
+ | <K_PRIMARY:"PRIMARY">
243
+ | <K_PRIOR:"PRIOR">
244
+ | <K_RANGE: "RANGE">
255
245
| <K_RECURSIVE:"RECURSIVE">
256
- | <K_OF:"OF">
257
- | <K_KEEP:"KEEP">
258
- | <K_GROUP_CONCAT:"GROUP_CONCAT">
259
- | <K_SEPARATOR:"SEPARATOR">
260
- | <K_SKIP: "SKIP">
261
- | <K_MERGE: "MERGE">
262
- | <K_MATCHED: "MATCHED">
263
- | <K_CASCADE: "CASCADE">
246
+ | <K_REFERENCES:"REFERENCES">
247
+ | <K_REGEXP: "REGEXP">
248
+ | <K_REPLACE:"REPLACE">
264
249
| <K_RESTRICT: "RESTRICT">
265
- | <K_NO:"NO">
266
- | <K_ACTION: "ACTION">
267
- | <K_DUPLICATE: "DUPLICATE">
268
- | <K_LOW_PRIORITY : "LOW_PRIORITY">
269
- | <K_DELAYED : "DELAYED">
270
- | <K_HIGH_PRIORITY : "HIGH_PRIORITY">
271
- | <K_IGNORE : "IGNORE">
250
+ | <K_RETURNING: "RETURNING">
251
+ | <K_RIGHT:"RIGHT">
252
+ | <K_ROW: "ROW">
253
+ | <K_ROWS: "ROWS">
254
+ | <K_SELECT:"SELECT">
272
255
| <K_SEMI : "SEMI">
273
- | <K_DATETIMELITERAL : ("DATE" | "TIME" | "TIMESTAMP") >
274
- | <K_ZONE:"ZONE">
275
- | <K_TIME_KEY_EXPR : ( "CURRENT_TIMESTAMP" | "CURRENT_TIME" | "CURRENT_DATE" ) ( "()" )?>
276
- | <K_DOUBLE : "DOUBLE">
277
- | <K_PRECISION : "PRECISION">
256
+ | <K_SEPARATOR:"SEPARATOR">
257
+ | <K_SET:"SET">
258
+ | <K_SIBLINGS:"SIBLINGS">
259
+ | <K_SKIP: "SKIP">
260
+ | <K_SOME:"SOME">
261
+ | <K_START:"START">
262
+ | <K_TABLE:"TABLE">
278
263
| <K_TABLESPACE : "TABLESPACE">
279
- | <K_EXCLUDE : "EXCLUDE">
280
- | <K_WAIT : "WAIT">
281
- | <K_DEFERRABLE : "DEFERRABLE">
282
- | <K_VALIDATE : "VALIDATE">
283
- | <K_NOVALIDATE : "NOVALIDATE">
284
- | <K_ENABLE : "ENABLE">
285
- | <K_DISABLE : "DISABLE">
264
+ | <K_THEN:"THEN">
265
+ | <K_TIME_KEY_EXPR : ( "CURRENT_TIMESTAMP" | "CURRENT_TIME" | "CURRENT_DATE" ) ( "()" )?>
266
+ | <K_TOP:"TOP">
267
+ | <K_TRUNCATE:"TRUNCATE">
268
+ | <K_UNBOUNDED: "UNBOUNDED">
269
+ | <K_UNION:"UNION">
270
+ | <K_UNIQUE:"UNIQUE">
271
+ | <K_UNLOGGED: "UNLOGGED">
272
+ | <K_UPDATE:"UPDATE">
273
+ | <K_UPSERT:"UPSERT">
286
274
| <K_USE : "USE">
287
- | <K_FORCE : "FORCE">
288
- | <K_CALL : "CALL">
275
+ | <K_USING:"USING">
276
+ | <K_VALIDATE : "VALIDATE">
277
+ | <K_VALUE:"VALUE">
278
+ | <K_VALUES:"VALUES">
279
+ | <K_VARYING:"VARYING">
280
+ | <K_VIEW:"VIEW">
281
+ | <K_WAIT : "WAIT">
282
+ | <K_WHEN:"WHEN">
283
+ | <K_WHERE:"WHERE">
284
+ | <K_WITH:"WITH">
285
+ | <K_WITHIN:"WITHIN">
286
+ | <K_WITHOUT:"WITHOUT">
287
+ | <K_XML:"XML">
288
+ | <K_ZONE:"ZONE">
289
289
}
290
290
291
291
TOKEN : /* Stuff */
@@ -2189,7 +2189,7 @@ Expression SimpleExpression():
2189
2189
}
2190
2190
{
2191
2191
(
2192
- retval=BitwiseAndOr ()
2192
+ retval=ConcatExpression ()
2193
2193
)
2194
2194
2195
2195
{
@@ -2204,10 +2204,10 @@ Expression ConcatExpression():
2204
2204
Expression rightExpression = null;
2205
2205
}
2206
2206
{
2207
- leftExpression=AdditiveExpression () { result = leftExpression; }
2207
+ leftExpression=BitwiseAndOr () { result = leftExpression; }
2208
2208
(LOOKAHEAD(2)
2209
2209
"||"
2210
- rightExpression=AdditiveExpression ()
2210
+ rightExpression=BitwiseAndOr ()
2211
2211
{
2212
2212
Concat binExp = new Concat();
2213
2213
binExp.setLeftExpression(leftExpression);
@@ -2227,15 +2227,15 @@ Expression BitwiseAndOr():
2227
2227
Expression rightExpression = null;
2228
2228
}
2229
2229
{
2230
- leftExpression=ConcatExpression () { result = leftExpression; }
2230
+ leftExpression=AdditiveExpression () { result = leftExpression; }
2231
2231
(
2232
2232
(
2233
- "|" { result = new BitwiseOr(); }
2234
- |
2235
- "&" { result = new BitwiseAnd(); }
2233
+ "|" { result = new BitwiseOr(); }
2234
+ |
2235
+ "&" { result = new BitwiseAnd(); }
2236
2236
)
2237
2237
2238
- rightExpression=ConcatExpression ()
2238
+ rightExpression=AdditiveExpression ()
2239
2239
2240
2240
{
2241
2241
BinaryExpression binExp = (BinaryExpression) result;
@@ -2372,7 +2372,7 @@ Expression PrimaryExpression():
2372
2372
2373
2373
| LOOKAHEAD(["+" | "-"] Column()) [sign="+" | sign="-"] retval=Column()
2374
2374
2375
- | LOOKAHEAD(["+" | "-"] "(" BitwiseAndOr () ")") [sign="+" | sign="-"] "(" retval=BitwiseAndOr () ")" {retval = new Parenthesis(retval); }
2375
+ | LOOKAHEAD(["+" | "-"] "(" SimpleExpression () ")") [sign="+" | sign="-"] "(" retval=SimpleExpression () ")" {retval = new Parenthesis(retval); }
2376
2376
2377
2377
| LOOKAHEAD(3) [sign="+" | sign="-"] "(" retval=SubSelect() ")"
2378
2378
0 commit comments