Statistics
| Revision:

root / trunk / libraries / libGDBMS / grammar / sql.jj.jj @ 466

History | View | Annotate | Download (40 KB)

1
/*@bgen(jjtree) Generated By:JJTree: Do not edit this line. sql.jj.jj */
2
/*@egen*//* adder.jj Adding up numbers */
3
options {
4
	STATIC = false ;
5
}
6
PARSER_BEGIN(SQLEngine)
7
import java.io.FileInputStream;
8
import java.io.FileNotFoundException;
9
	public class SQLEngine/*@bgen(jjtree)*/implements SQLEngineTreeConstants/*@egen*/ {/*@bgen(jjtree)*/
10
  protected JJTSQLEngineState jjtree = new JJTSQLEngineState();
11

    
12
/*@egen*/
13
		public static void main( String[] args )
14
		throws ParseException, TokenMgrError, FileNotFoundException {
15
			SQLEngine parser = new SQLEngine( new FileInputStream(args[0] )) ;
16
			parser.SQLStatement() ; }
17
  private void jjtreeOpenNodeScope( Node node )
18
  {
19
    ((SimpleNode)node).first_token = getToken(1);
20
  }
21

    
22
  private void jjtreeCloseNodeScope( Node node )
23
  {
24
    ((SimpleNode)node).last_token = getToken(0);
25
  }
26

    
27
	public Node getRootNode(){
28
		return jjtree.rootNode();
29
	}
30

    
31
		}
32
PARSER_END(SQLEngine)
33

    
34
/***********************************************************************
35
 * Token definitions
36
 ***********************************************************************/
37

    
38
/* There may be tokens here which don't relate to SQL, but we needed for
39
   the rest of our project [Kevin] */ 
40

    
41
SKIP:
42
{
43
    " "
44
  | "\n"
45
  | "\r"
46
  | "\t"
47
}
48

    
49

    
50
SKIP:
51
{
52
  <COMMENT_LINE: "--" (~["\n","\r"])* ("\n"|"\r"|"\r\n") >
53
}
54

    
55

    
56
SKIP:
57
{
58
  <COMMENT_BLOCK: "/*" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/">
59
}
60

    
61

    
62
TOKEN:  /* Keywords */
63
{
64
    < ALL: "all" >
65
  | < AND: "and" >
66
  | < AS: "as" >
67
  | < ASC: "asc" >
68
  | < BEGIN: "begin" >
69
  | < BETWEEN: "between" >
70
  | < BY: "by" >
71
  | < DESC: "desc" >
72
  | < DISTINCT: "distinct" >
73
  | < FROM: "from" >
74
  | < GROUP: "group" >
75
  | < HAVING: "having" >
76
  | < IN: "in" >
77
  | < IS: "is" >
78
  | < LIKE: "like" >
79
  | < MAX: "max" >
80
  | < MIN: "min" >
81
  | < NOT: "not" >
82
  | < NULL: "null" >
83
  | < OR: "or" >
84
  | < ORDER: "order" >
85
  | < SELECT: "select" >
86
  | < UNION: "union" >
87
  | < SPACES: "spaces" >
88
  | < SUBSTR: "substr" >
89
  | < SUM: "sum" >
90
  | < UPPER: "upper" >
91
  | < WHERE: "where" >
92

    
93
//***************************************************************************************
94
  | < COUNT: "count" >
95
  | < DELETE: "delete" >
96
  | < EXISTS: "exists" >
97
  | < INSERT: "insert" >
98
  | < INTO: "into" >
99
  | < LENGTH: "length" >
100
  | < LTRIM: "ltrim" >
101
  | < REPLACE: "replace" >
102
  | < RTRIM: "rtrim" >
103
  | < SET: "set" >
104
  | < UPDATE: "update" >
105
  | < VALUES: "values" >
106
}
107

    
108
 
109
TOKEN:  /* Literals */
110
{
111
    < INTEGER_LITERAL: (["0"-"9"])+ >
112
  | < FLOATING_POINT_LITERAL:
113
          (["0"-"9"])+ "." (["0"-"9"])+ (<EXPONENT>)?
114
        | "." (["0"-"9"])+ (<EXPONENT>)?
115
        | (["0"-"9"])+ <EXPONENT>
116
        | (["0"-"9"])+ (<EXPONENT>)?
117
    >
118
  | < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
119
  | < STRING_LITERAL: "'" (~["'"])* ( "''" (~["'"])* )* "'" >
120
}
121

    
122

    
123
TOKEN:  /* Identifiers */
124
{
125
    < ID: ( <LETTER> )+ ( "_" | "$" | "#" | <DIGIT> | <LETTER> )* >
126
  | < #LETTER: ["A"-"Z", "a"-"z"] >
127
  | < #DIGIT: ["0"-"9"] >
128
}
129

    
130

    
131
TOKEN:  /* Separators and operators */
132
{
133
    < ASSIGN: ":=" >
134
  | < CONCAT: "||" >
135
  | < SEMICOLON: ";" >
136
  | < DOT: "." >
137
  | < TILDE: "~" >
138
  | < LESS: "<" >
139
  | < LESSEQUAL: "<=" >
140
  | < GREATER: ">" >
141
  | < GREATEREQUAL: ">=" >
142
  | < EQUAL: "=" >
143
  | < NOTEQUAL: "!=" >
144
  | < NOTEQUAL2: "<>" >
145
  | < JOINPLUS: "(+)" >
146
  | < OPENPAREN: "(" >
147
  | < CLOSEPAREN: ")" >
148
  | < ASTERISK: "*" >
149
  | < SLASH: "/" >
150
  | < PLUS: "+" >
151
  | < MINUS: "-" >
152
  | < QUESTIONMARK: "?" >
153
  | <COMPARISON: <LESS>
154
       | <LESSEQUAL>
155
       | <GREATER>
156
       | <GREATEREQUAL>
157
       | <EQUAL>
158
       | <NOTEQUAL>
159
       | <NOTEQUAL2>
160
    >
161
}
162

    
163

    
164

    
165
void SQLAndExpr() :
166
{/*@bgen(jjtree) SQLAndExpr */
167
  ASTSQLAndExpr jjtn000 = new ASTSQLAndExpr(JJTSQLANDEXPR);
168
  boolean jjtc000 = true;
169
  jjtree.openNodeScope(jjtn000);
170
  jjtreeOpenNodeScope(jjtn000);
171
/*@egen*/}
172
{/*@bgen(jjtree) SQLAndExpr */
173
  try {
174
/*@egen*/
175
  SQLNotExpr()
176
  ( <AND> 
177
	 SQLNotExpr() )*/*@bgen(jjtree)*/
178
  } catch (Throwable jjte000) {
179
    if (jjtc000) {
180
      jjtree.clearNodeScope(jjtn000);
181
      jjtc000 = false;
182
    } else {
183
      jjtree.popNode();
184
    }
185
    if (jjte000 instanceof RuntimeException) {
186
      throw (RuntimeException)jjte000;
187
    }
188
    if (jjte000 instanceof ParseException) {
189
      throw (ParseException)jjte000;
190
    }
191
    throw (Error)jjte000;
192
  } finally {
193
    if (jjtc000) {
194
      jjtree.closeNodeScope(jjtn000, true);
195
      jjtreeCloseNodeScope(jjtn000);
196
    }
197
  }
198
/*@egen*/
199
}
200

    
201
void SQLBetweenClause() :
202
{/*@bgen(jjtree) SQLBetweenClause */
203
  ASTSQLBetweenClause jjtn000 = new ASTSQLBetweenClause(JJTSQLBETWEENCLAUSE);
204
  boolean jjtc000 = true;
205
  jjtree.openNodeScope(jjtn000);
206
  jjtreeOpenNodeScope(jjtn000);
207
/*@egen*/}
208
{/*@bgen(jjtree) SQLBetweenClause */
209
  try {
210
/*@egen*/
211
  [ <NOT> ]
212
  <BETWEEN> 
213
  SQLSumExpr() 
214
  <AND> 
215
  SQLSumExpr()/*@bgen(jjtree)*/
216
  } catch (Throwable jjte000) {
217
    if (jjtc000) {
218
      jjtree.clearNodeScope(jjtn000);
219
      jjtc000 = false;
220
    } else {
221
      jjtree.popNode();
222
    }
223
    if (jjte000 instanceof RuntimeException) {
224
      throw (RuntimeException)jjte000;
225
    }
226
    if (jjte000 instanceof ParseException) {
227
      throw (ParseException)jjte000;
228
    }
229
    throw (Error)jjte000;
230
  } finally {
231
    if (jjtc000) {
232
      jjtree.closeNodeScope(jjtn000, true);
233
      jjtreeCloseNodeScope(jjtn000);
234
    }
235
  }
236
/*@egen*/
237
}
238

    
239
void SQLColRef() :
240
{/*@bgen(jjtree) SQLColRef */
241
  ASTSQLColRef jjtn000 = new ASTSQLColRef(JJTSQLCOLREF);
242
  boolean jjtc000 = true;
243
  jjtree.openNodeScope(jjtn000);
244
  jjtreeOpenNodeScope(jjtn000);
245
/*@egen*/
246
}
247
{/*@bgen(jjtree) SQLColRef */
248
  try {
249
/*@egen*/
250
  SQLLvalue()/*@bgen(jjtree)*/
251
  } catch (Throwable jjte000) {
252
    if (jjtc000) {
253
      jjtree.clearNodeScope(jjtn000);
254
      jjtc000 = false;
255
    } else {
256
      jjtree.popNode();
257
    }
258
    if (jjte000 instanceof RuntimeException) {
259
      throw (RuntimeException)jjte000;
260
    }
261
    if (jjte000 instanceof ParseException) {
262
      throw (ParseException)jjte000;
263
    }
264
    throw (Error)jjte000;
265
  } finally {
266
    if (jjtc000) {
267
      jjtree.closeNodeScope(jjtn000, true);
268
      jjtreeCloseNodeScope(jjtn000);
269
    }
270
  }
271
/*@egen*/
272
}
273

    
274
void SQLCompareExpr() :
275
{/*@bgen(jjtree) SQLCompareExpr */
276
  ASTSQLCompareExpr jjtn000 = new ASTSQLCompareExpr(JJTSQLCOMPAREEXPR);
277
  boolean jjtc000 = true;
278
  jjtree.openNodeScope(jjtn000);
279
  jjtreeOpenNodeScope(jjtn000);
280
/*@egen*/
281
}
282
{/*@bgen(jjtree) SQLCompareExpr */
283
  try {
284
/*@egen*/
285
  (
286
    LOOKAHEAD (SQLSelect()) SQLSelect()
287
  | LOOKAHEAD (SQLColRef() <IS>) SQLIsClause()
288
  | LOOKAHEAD (<EXISTS>) SQLExistsClause()
289
  | SQLSumExpr() [ SQLCompareExprRight() ] 
290
  )/*@bgen(jjtree)*/
291
  } catch (Throwable jjte000) {
292
    if (jjtc000) {
293
      jjtree.clearNodeScope(jjtn000);
294
      jjtc000 = false;
295
    } else {
296
      jjtree.popNode();
297
    }
298
    if (jjte000 instanceof RuntimeException) {
299
      throw (RuntimeException)jjte000;
300
    }
301
    if (jjte000 instanceof ParseException) {
302
      throw (ParseException)jjte000;
303
    }
304
    throw (Error)jjte000;
305
  } finally {
306
    if (jjtc000) {
307
      jjtree.closeNodeScope(jjtn000, true);
308
      jjtreeCloseNodeScope(jjtn000);
309
    }
310
  }
311
/*@egen*/
312
}
313

    
314
void SQLCompareExprRight() :
315
{/*@bgen(jjtree) SQLCompareExprRight */
316
  ASTSQLCompareExprRight jjtn000 = new ASTSQLCompareExprRight(JJTSQLCOMPAREEXPRRIGHT);
317
  boolean jjtc000 = true;
318
  jjtree.openNodeScope(jjtn000);
319
  jjtreeOpenNodeScope(jjtn000);
320
/*@egen*/}
321
{/*@bgen(jjtree) SQLCompareExprRight */
322
  try {
323
/*@egen*/
324
  (
325
    LOOKAHEAD(2) SQLLikeClause()
326
  | LOOKAHEAD(2) SQLInClause()
327
  | SQLLeftJoinClause()
328
  | LOOKAHEAD(SQLCompareOp() SQLSumExpr() "(+)") SQLRightJoinClause() 
329
  | LOOKAHEAD(2) SQLBetweenClause()
330
  | SQLCompareOp() 
331
    SQLSumExpr() 
332
  )/*@bgen(jjtree)*/
333
  } catch (Throwable jjte000) {
334
    if (jjtc000) {
335
      jjtree.clearNodeScope(jjtn000);
336
      jjtc000 = false;
337
    } else {
338
      jjtree.popNode();
339
    }
340
    if (jjte000 instanceof RuntimeException) {
341
      throw (RuntimeException)jjte000;
342
    }
343
    if (jjte000 instanceof ParseException) {
344
      throw (ParseException)jjte000;
345
    }
346
    throw (Error)jjte000;
347
  } finally {
348
    if (jjtc000) {
349
      jjtree.closeNodeScope(jjtn000, true);
350
      jjtreeCloseNodeScope(jjtn000);
351
    }
352
  }
353
/*@egen*/
354
}
355

    
356
void SQLCompareOp() :
357
{/*@bgen(jjtree) SQLCompareOp */
358
  ASTSQLCompareOp jjtn000 = new ASTSQLCompareOp(JJTSQLCOMPAREOP);
359
  boolean jjtc000 = true;
360
  jjtree.openNodeScope(jjtn000);
361
  jjtreeOpenNodeScope(jjtn000);
362
/*@egen*/}
363
{/*@bgen(jjtree) SQLCompareOp */
364
  try {
365
/*@egen*/
366
  (
367
    <EQUAL>
368
  | <NOTEQUAL>
369
  | <NOTEQUAL2>
370
  | <GREATER>
371
  | <GREATEREQUAL>
372
  | <LESS>
373
  | <LESSEQUAL>
374
  )/*@bgen(jjtree)*/
375
  } finally {
376
    if (jjtc000) {
377
      jjtree.closeNodeScope(jjtn000, true);
378
      jjtreeCloseNodeScope(jjtn000);
379
    }
380
  }
381
/*@egen*/
382
}
383

    
384
void SQLDelete() :
385
{/*@bgen(jjtree) SQLDelete */
386
  ASTSQLDelete jjtn000 = new ASTSQLDelete(JJTSQLDELETE);
387
  boolean jjtc000 = true;
388
  jjtree.openNodeScope(jjtn000);
389
  jjtreeOpenNodeScope(jjtn000);
390
/*@egen*/}
391
{/*@bgen(jjtree) SQLDelete */
392
  try {
393
/*@egen*/
394
  <DELETE> <FROM>
395
  SQLTableList()
396
  [ SQLWhere() ]/*@bgen(jjtree)*/
397
  } catch (Throwable jjte000) {
398
    if (jjtc000) {
399
      jjtree.clearNodeScope(jjtn000);
400
      jjtc000 = false;
401
    } else {
402
      jjtree.popNode();
403
    }
404
    if (jjte000 instanceof RuntimeException) {
405
      throw (RuntimeException)jjte000;
406
    }
407
    if (jjte000 instanceof ParseException) {
408
      throw (ParseException)jjte000;
409
    }
410
    throw (Error)jjte000;
411
  } finally {
412
    if (jjtc000) {
413
      jjtree.closeNodeScope(jjtn000, true);
414
      jjtreeCloseNodeScope(jjtn000);
415
    }
416
  }
417
/*@egen*/
418
}
419

    
420
void SQLExistsClause() :
421
{/*@bgen(jjtree) SQLExistsClause */
422
  ASTSQLExistsClause jjtn000 = new ASTSQLExistsClause(JJTSQLEXISTSCLAUSE);
423
  boolean jjtc000 = true;
424
  jjtree.openNodeScope(jjtn000);
425
  jjtreeOpenNodeScope(jjtn000);
426
/*@egen*/}
427
{/*@bgen(jjtree) SQLExistsClause */
428
  try {
429
/*@egen*/
430
  <EXISTS> 
431
  "(" SQLSelect() ")"/*@bgen(jjtree)*/
432
  } catch (Throwable jjte000) {
433
    if (jjtc000) {
434
      jjtree.clearNodeScope(jjtn000);
435
      jjtc000 = false;
436
    } else {
437
      jjtree.popNode();
438
    }
439
    if (jjte000 instanceof RuntimeException) {
440
      throw (RuntimeException)jjte000;
441
    }
442
    if (jjte000 instanceof ParseException) {
443
      throw (ParseException)jjte000;
444
    }
445
    throw (Error)jjte000;
446
  } finally {
447
    if (jjtc000) {
448
      jjtree.closeNodeScope(jjtn000, true);
449
      jjtreeCloseNodeScope(jjtn000);
450
    }
451
  }
452
/*@egen*/
453
}
454

    
455
void SQLFunction() :
456
{/*@bgen(jjtree) SQLFunction */
457
  ASTSQLFunction jjtn000 = new ASTSQLFunction(JJTSQLFUNCTION);
458
  boolean jjtc000 = true;
459
  jjtree.openNodeScope(jjtn000);
460
  jjtreeOpenNodeScope(jjtn000);
461
/*@egen*/
462
}
463
{/*@bgen(jjtree) SQLFunction */
464
  try {
465
/*@egen*/
466
  ( <UPPER> 
467
    SQLFunctionArgs() 
468
  | <MAX> 
469
    SQLFunctionArgs() 
470
  | <MIN> 
471
    SQLFunctionArgs() 
472
  | <SUM>
473
    SQLFunctionArgs() 
474
  | <COUNT> 
475
    SQLFunctionArgs()
476
  | <LTRIM> 
477
    SQLFunctionArgs()
478
  | <RTRIM> 
479
    SQLFunctionArgs()
480
  | <LENGTH>
481
    SQLFunctionArgs()
482
  | <REPLACE>
483
    SQLFunctionArgs()
484
  | <SUBSTR> 
485
    SQLFunctionArgs()
486
  )/*@bgen(jjtree)*/
487
  } catch (Throwable jjte000) {
488
    if (jjtc000) {
489
      jjtree.clearNodeScope(jjtn000);
490
      jjtc000 = false;
491
    } else {
492
      jjtree.popNode();
493
    }
494
    if (jjte000 instanceof RuntimeException) {
495
      throw (RuntimeException)jjte000;
496
    }
497
    if (jjte000 instanceof ParseException) {
498
      throw (ParseException)jjte000;
499
    }
500
    throw (Error)jjte000;
501
  } finally {
502
    if (jjtc000) {
503
      jjtree.closeNodeScope(jjtn000, true);
504
      jjtreeCloseNodeScope(jjtn000);
505
    }
506
  }
507
/*@egen*/
508
}
509

    
510
void SQLFunctionArgs() :
511
{/*@bgen(jjtree) SQLFunctionArgs */
512
  ASTSQLFunctionArgs jjtn000 = new ASTSQLFunctionArgs(JJTSQLFUNCTIONARGS);
513
  boolean jjtc000 = true;
514
  jjtree.openNodeScope(jjtn000);
515
  jjtreeOpenNodeScope(jjtn000);
516
/*@egen*/}
517
{/*@bgen(jjtree) SQLFunctionArgs */
518
  try {
519
/*@egen*/
520
  "(" 
521
  [ SQLSumExpr() 
522
    ( "," 
523
      SQLSumExpr() )*
524
  ]
525
  ")"/*@bgen(jjtree)*/
526
  } catch (Throwable jjte000) {
527
    if (jjtc000) {
528
      jjtree.clearNodeScope(jjtn000);
529
      jjtc000 = false;
530
    } else {
531
      jjtree.popNode();
532
    }
533
    if (jjte000 instanceof RuntimeException) {
534
      throw (RuntimeException)jjte000;
535
    }
536
    if (jjte000 instanceof ParseException) {
537
      throw (ParseException)jjte000;
538
    }
539
    throw (Error)jjte000;
540
  } finally {
541
    if (jjtc000) {
542
      jjtree.closeNodeScope(jjtn000, true);
543
      jjtreeCloseNodeScope(jjtn000);
544
    }
545
  }
546
/*@egen*/ 
547
}
548

    
549
void SQLGroupBy() :
550
{/*@bgen(jjtree) SQLGroupBy */
551
  ASTSQLGroupBy jjtn000 = new ASTSQLGroupBy(JJTSQLGROUPBY);
552
  boolean jjtc000 = true;
553
  jjtree.openNodeScope(jjtn000);
554
  jjtreeOpenNodeScope(jjtn000);
555
/*@egen*/}
556
{/*@bgen(jjtree) SQLGroupBy */
557
  try {
558
/*@egen*/
559
  <GROUP> <BY> 
560
  SQLOrderByList()/*@bgen(jjtree)*/
561
  } catch (Throwable jjte000) {
562
    if (jjtc000) {
563
      jjtree.clearNodeScope(jjtn000);
564
      jjtc000 = false;
565
    } else {
566
      jjtree.popNode();
567
    }
568
    if (jjte000 instanceof RuntimeException) {
569
      throw (RuntimeException)jjte000;
570
    }
571
    if (jjte000 instanceof ParseException) {
572
      throw (ParseException)jjte000;
573
    }
574
    throw (Error)jjte000;
575
  } finally {
576
    if (jjtc000) {
577
      jjtree.closeNodeScope(jjtn000, true);
578
      jjtreeCloseNodeScope(jjtn000);
579
    }
580
  }
581
/*@egen*/ 
582
}
583

    
584
void SQLInClause() :
585
{/*@bgen(jjtree) SQLInClause */
586
  ASTSQLInClause jjtn000 = new ASTSQLInClause(JJTSQLINCLAUSE);
587
  boolean jjtc000 = true;
588
  jjtree.openNodeScope(jjtn000);
589
  jjtreeOpenNodeScope(jjtn000);
590
/*@egen*/}
591
{/*@bgen(jjtree) SQLInClause */
592
  try {
593
/*@egen*/
594
  [ <NOT> ]
595
  <IN> 
596
  "(" 
597
  SQLLValueList() 
598
  ")"/*@bgen(jjtree)*/
599
  } catch (Throwable jjte000) {
600
    if (jjtc000) {
601
      jjtree.clearNodeScope(jjtn000);
602
      jjtc000 = false;
603
    } else {
604
      jjtree.popNode();
605
    }
606
    if (jjte000 instanceof RuntimeException) {
607
      throw (RuntimeException)jjte000;
608
    }
609
    if (jjte000 instanceof ParseException) {
610
      throw (ParseException)jjte000;
611
    }
612
    throw (Error)jjte000;
613
  } finally {
614
    if (jjtc000) {
615
      jjtree.closeNodeScope(jjtn000, true);
616
      jjtreeCloseNodeScope(jjtn000);
617
    }
618
  }
619
/*@egen*/ 
620
}
621

    
622
void SQLInsert() :
623
{/*@bgen(jjtree) SQLInsert */
624
  ASTSQLInsert jjtn000 = new ASTSQLInsert(JJTSQLINSERT);
625
  boolean jjtc000 = true;
626
  jjtree.openNodeScope(jjtn000);
627
  jjtreeOpenNodeScope(jjtn000);
628
/*@egen*/}
629
{/*@bgen(jjtree) SQLInsert */
630
  try {
631
/*@egen*/
632
  <INSERT> <INTO> 
633
  SQLTableList() 
634
  [
635
    "(" 
636
    SQLSelectCols() 
637
    ")" 
638
    <VALUES> 
639
  ]
640
  "("
641
  SQLSelectCols() 
642
  ")"/*@bgen(jjtree)*/
643
  } catch (Throwable jjte000) {
644
    if (jjtc000) {
645
      jjtree.clearNodeScope(jjtn000);
646
      jjtc000 = false;
647
    } else {
648
      jjtree.popNode();
649
    }
650
    if (jjte000 instanceof RuntimeException) {
651
      throw (RuntimeException)jjte000;
652
    }
653
    if (jjte000 instanceof ParseException) {
654
      throw (ParseException)jjte000;
655
    }
656
    throw (Error)jjte000;
657
  } finally {
658
    if (jjtc000) {
659
      jjtree.closeNodeScope(jjtn000, true);
660
      jjtreeCloseNodeScope(jjtn000);
661
    }
662
  }
663
/*@egen*/
664
}
665

    
666
void SQLIsClause() :
667
{/*@bgen(jjtree) SQLIsClause */
668
  ASTSQLIsClause jjtn000 = new ASTSQLIsClause(JJTSQLISCLAUSE);
669
  boolean jjtc000 = true;
670
  jjtree.openNodeScope(jjtn000);
671
  jjtreeOpenNodeScope(jjtn000);
672
/*@egen*/}
673
{/*@bgen(jjtree) SQLIsClause */
674
  try {
675
/*@egen*/
676
  SQLColRef() 
677
  <IS> 
678
  [ <NOT>  ]
679
  <NULL>/*@bgen(jjtree)*/
680
  } catch (Throwable jjte000) {
681
    if (jjtc000) {
682
      jjtree.clearNodeScope(jjtn000);
683
      jjtc000 = false;
684
    } else {
685
      jjtree.popNode();
686
    }
687
    if (jjte000 instanceof RuntimeException) {
688
      throw (RuntimeException)jjte000;
689
    }
690
    if (jjte000 instanceof ParseException) {
691
      throw (ParseException)jjte000;
692
    }
693
    throw (Error)jjte000;
694
  } finally {
695
    if (jjtc000) {
696
      jjtree.closeNodeScope(jjtn000, true);
697
      jjtreeCloseNodeScope(jjtn000);
698
    }
699
  }
700
/*@egen*/ 
701
}
702

    
703
void SQLLeftJoinClause() :
704
{/*@bgen(jjtree) SQLLeftJoinClause */
705
  ASTSQLLeftJoinClause jjtn000 = new ASTSQLLeftJoinClause(JJTSQLLEFTJOINCLAUSE);
706
  boolean jjtc000 = true;
707
  jjtree.openNodeScope(jjtn000);
708
  jjtreeOpenNodeScope(jjtn000);
709
/*@egen*/
710
}
711
{/*@bgen(jjtree) SQLLeftJoinClause */
712
  try {
713
/*@egen*/
714
  "(+)" SQLCompareOp() 
715
  SQLSumExpr()/*@bgen(jjtree)*/
716
  } catch (Throwable jjte000) {
717
    if (jjtc000) {
718
      jjtree.clearNodeScope(jjtn000);
719
      jjtc000 = false;
720
    } else {
721
      jjtree.popNode();
722
    }
723
    if (jjte000 instanceof RuntimeException) {
724
      throw (RuntimeException)jjte000;
725
    }
726
    if (jjte000 instanceof ParseException) {
727
      throw (ParseException)jjte000;
728
    }
729
    throw (Error)jjte000;
730
  } finally {
731
    if (jjtc000) {
732
      jjtree.closeNodeScope(jjtn000, true);
733
      jjtreeCloseNodeScope(jjtn000);
734
    }
735
  }
736
/*@egen*/
737
}
738

    
739
void SQLLikeClause() :
740
{/*@bgen(jjtree) SQLLikeClause */
741
  ASTSQLLikeClause jjtn000 = new ASTSQLLikeClause(JJTSQLLIKECLAUSE);
742
  boolean jjtc000 = true;
743
  jjtree.openNodeScope(jjtn000);
744
  jjtreeOpenNodeScope(jjtn000);
745
/*@egen*/}
746
{/*@bgen(jjtree) SQLLikeClause */
747
  try {
748
/*@egen*/
749
  [ <NOT>  ]
750
  <LIKE> 
751
  SQLPattern()/*@bgen(jjtree)*/
752
  } catch (Throwable jjte000) {
753
    if (jjtc000) {
754
      jjtree.clearNodeScope(jjtn000);
755
      jjtc000 = false;
756
    } else {
757
      jjtree.popNode();
758
    }
759
    if (jjte000 instanceof RuntimeException) {
760
      throw (RuntimeException)jjte000;
761
    }
762
    if (jjte000 instanceof ParseException) {
763
      throw (ParseException)jjte000;
764
    }
765
    throw (Error)jjte000;
766
  } finally {
767
    if (jjtc000) {
768
      jjtree.closeNodeScope(jjtn000, true);
769
      jjtreeCloseNodeScope(jjtn000);
770
    }
771
  }
772
/*@egen*/ 
773
}
774

    
775
void SQLLiteral() :
776
{/*@bgen(jjtree) SQLLiteral */
777
  ASTSQLLiteral jjtn000 = new ASTSQLLiteral(JJTSQLLITERAL);
778
  boolean jjtc000 = true;
779
  jjtree.openNodeScope(jjtn000);
780
  jjtreeOpenNodeScope(jjtn000);
781
/*@egen*/
782
}
783
{/*@bgen(jjtree) SQLLiteral */
784
  try {
785
/*@egen*/
786
  ( <STRING_LITERAL> 
787
  | <INTEGER_LITERAL> 
788
  | <FLOATING_POINT_LITERAL> 
789
  | <SPACES> 
790
  | <ASTERISK> 
791
  )/*@bgen(jjtree)*/
792
  } finally {
793
    if (jjtc000) {
794
      jjtree.closeNodeScope(jjtn000, true);
795
      jjtreeCloseNodeScope(jjtn000);
796
    }
797
  }
798
/*@egen*/
799
}
800

    
801
void SQLLvalue() :
802
{/*@bgen(jjtree) SQLLvalue */
803
  ASTSQLLvalue jjtn000 = new ASTSQLLvalue(JJTSQLLVALUE);
804
  boolean jjtc000 = true;
805
  jjtree.openNodeScope(jjtn000);
806
  jjtreeOpenNodeScope(jjtn000);
807
/*@egen*/
808
}
809
{/*@bgen(jjtree) SQLLvalue */
810
  try {
811
/*@egen*/
812
  (
813
    SQLLvalueTerm()
814
  )/*@bgen(jjtree)*/
815
  } catch (Throwable jjte000) {
816
    if (jjtc000) {
817
      jjtree.clearNodeScope(jjtn000);
818
      jjtc000 = false;
819
    } else {
820
      jjtree.popNode();
821
    }
822
    if (jjte000 instanceof RuntimeException) {
823
      throw (RuntimeException)jjte000;
824
    }
825
    if (jjte000 instanceof ParseException) {
826
      throw (ParseException)jjte000;
827
    }
828
    throw (Error)jjte000;
829
  } finally {
830
    if (jjtc000) {
831
      jjtree.closeNodeScope(jjtn000, true);
832
      jjtreeCloseNodeScope(jjtn000);
833
    }
834
  }
835
/*@egen*/
836
}
837

    
838
void SQLLvalueTerm() :
839
{/*@bgen(jjtree) SQLLvalueTerm */
840
  ASTSQLLvalueTerm jjtn000 = new ASTSQLLvalueTerm(JJTSQLLVALUETERM);
841
  boolean jjtc000 = true;
842
  jjtree.openNodeScope(jjtn000);
843
  jjtreeOpenNodeScope(jjtn000);
844
/*@egen*/
845
}
846
{/*@bgen(jjtree) SQLLvalueTerm */
847
  try {
848
/*@egen*/
849
  <ID> 
850
  ( <DOT> <ID> )*/*@bgen(jjtree)*/
851
  } finally {
852
    if (jjtc000) {
853
      jjtree.closeNodeScope(jjtn000, true);
854
      jjtreeCloseNodeScope(jjtn000);
855
    }
856
  }
857
/*@egen*/
858
}
859

    
860
void SQLNotExpr() :
861
{/*@bgen(jjtree) SQLNotExpr */
862
  ASTSQLNotExpr jjtn000 = new ASTSQLNotExpr(JJTSQLNOTEXPR);
863
  boolean jjtc000 = true;
864
  jjtree.openNodeScope(jjtn000);
865
  jjtreeOpenNodeScope(jjtn000);
866
/*@egen*/}
867
{/*@bgen(jjtree) SQLNotExpr */
868
  try {
869
/*@egen*/
870
  [ <NOT> ] 
871
  SQLCompareExpr()/*@bgen(jjtree)*/
872
  } catch (Throwable jjte000) {
873
    if (jjtc000) {
874
      jjtree.clearNodeScope(jjtn000);
875
      jjtc000 = false;
876
    } else {
877
      jjtree.popNode();
878
    }
879
    if (jjte000 instanceof RuntimeException) {
880
      throw (RuntimeException)jjte000;
881
    }
882
    if (jjte000 instanceof ParseException) {
883
      throw (ParseException)jjte000;
884
    }
885
    throw (Error)jjte000;
886
  } finally {
887
    if (jjtc000) {
888
      jjtree.closeNodeScope(jjtn000, true);
889
      jjtreeCloseNodeScope(jjtn000);
890
    }
891
  }
892
/*@egen*/ 
893
}
894

    
895
void SQLOrderBy() :
896
{/*@bgen(jjtree) SQLOrderBy */
897
  ASTSQLOrderBy jjtn000 = new ASTSQLOrderBy(JJTSQLORDERBY);
898
  boolean jjtc000 = true;
899
  jjtree.openNodeScope(jjtn000);
900
  jjtreeOpenNodeScope(jjtn000);
901
/*@egen*/}
902
{/*@bgen(jjtree) SQLOrderBy */
903
  try {
904
/*@egen*/
905
  <ORDER> <BY> 
906
  SQLOrderByList()/*@bgen(jjtree)*/
907
  } catch (Throwable jjte000) {
908
    if (jjtc000) {
909
      jjtree.clearNodeScope(jjtn000);
910
      jjtc000 = false;
911
    } else {
912
      jjtree.popNode();
913
    }
914
    if (jjte000 instanceof RuntimeException) {
915
      throw (RuntimeException)jjte000;
916
    }
917
    if (jjte000 instanceof ParseException) {
918
      throw (ParseException)jjte000;
919
    }
920
    throw (Error)jjte000;
921
  } finally {
922
    if (jjtc000) {
923
      jjtree.closeNodeScope(jjtn000, true);
924
      jjtreeCloseNodeScope(jjtn000);
925
    }
926
  }
927
/*@egen*/
928
}
929

    
930
void SQLOrderByElem() :
931
{/*@bgen(jjtree) SQLOrderByElem */
932
  ASTSQLOrderByElem jjtn000 = new ASTSQLOrderByElem(JJTSQLORDERBYELEM);
933
  boolean jjtc000 = true;
934
  jjtree.openNodeScope(jjtn000);
935
  jjtreeOpenNodeScope(jjtn000);
936
/*@egen*/}
937
{/*@bgen(jjtree) SQLOrderByElem */
938
  try {
939
/*@egen*/
940
  SQLColRef()
941
  [ SQLOrderDirection()]/*@bgen(jjtree)*/
942
  } catch (Throwable jjte000) {
943
    if (jjtc000) {
944
      jjtree.clearNodeScope(jjtn000);
945
      jjtc000 = false;
946
    } else {
947
      jjtree.popNode();
948
    }
949
    if (jjte000 instanceof RuntimeException) {
950
      throw (RuntimeException)jjte000;
951
    }
952
    if (jjte000 instanceof ParseException) {
953
      throw (ParseException)jjte000;
954
    }
955
    throw (Error)jjte000;
956
  } finally {
957
    if (jjtc000) {
958
      jjtree.closeNodeScope(jjtn000, true);
959
      jjtreeCloseNodeScope(jjtn000);
960
    }
961
  }
962
/*@egen*/
963
}
964

    
965
void SQLOrderByList() :
966
{/*@bgen(jjtree) SQLOrderByList */
967
  ASTSQLOrderByList jjtn000 = new ASTSQLOrderByList(JJTSQLORDERBYLIST);
968
  boolean jjtc000 = true;
969
  jjtree.openNodeScope(jjtn000);
970
  jjtreeOpenNodeScope(jjtn000);
971
/*@egen*/}
972
{/*@bgen(jjtree) SQLOrderByList */
973
  try {
974
/*@egen*/
975
  SQLOrderByElem()
976
  ( LOOKAHEAD(2)
977
    "," 
978
    SQLOrderByElem() )*/*@bgen(jjtree)*/
979
  } catch (Throwable jjte000) {
980
    if (jjtc000) {
981
      jjtree.clearNodeScope(jjtn000);
982
      jjtc000 = false;
983
    } else {
984
      jjtree.popNode();
985
    }
986
    if (jjte000 instanceof RuntimeException) {
987
      throw (RuntimeException)jjte000;
988
    }
989
    if (jjte000 instanceof ParseException) {
990
      throw (ParseException)jjte000;
991
    }
992
    throw (Error)jjte000;
993
  } finally {
994
    if (jjtc000) {
995
      jjtree.closeNodeScope(jjtn000, true);
996
      jjtreeCloseNodeScope(jjtn000);
997
    }
998
  }
999
/*@egen*/
1000
}
1001

    
1002
void SQLOrderDirection() :
1003
{/*@bgen(jjtree) SQLOrderDirection */
1004
  ASTSQLOrderDirection jjtn000 = new ASTSQLOrderDirection(JJTSQLORDERDIRECTION);
1005
  boolean jjtc000 = true;
1006
  jjtree.openNodeScope(jjtn000);
1007
  jjtreeOpenNodeScope(jjtn000);
1008
/*@egen*/}
1009
{/*@bgen(jjtree) SQLOrderDirection */
1010
  try {
1011
/*@egen*/
1012
  (
1013
    <ASC>
1014
  | <DESC>
1015
  )/*@bgen(jjtree)*/
1016
  } finally {
1017
    if (jjtc000) {
1018
      jjtree.closeNodeScope(jjtn000, true);
1019
      jjtreeCloseNodeScope(jjtn000);
1020
    }
1021
  }
1022
/*@egen*/
1023
}
1024

    
1025
void SQLOrExpr() :
1026
{/*@bgen(jjtree) SQLOrExpr */
1027
  ASTSQLOrExpr jjtn000 = new ASTSQLOrExpr(JJTSQLOREXPR);
1028
  boolean jjtc000 = true;
1029
  jjtree.openNodeScope(jjtn000);
1030
  jjtreeOpenNodeScope(jjtn000);
1031
/*@egen*/}
1032
{/*@bgen(jjtree) SQLOrExpr */
1033
  try {
1034
/*@egen*/
1035
  SQLAndExpr()
1036
  ( <OR> 
1037
	SQLAndExpr() )*/*@bgen(jjtree)*/
1038
  } catch (Throwable jjte000) {
1039
    if (jjtc000) {
1040
      jjtree.clearNodeScope(jjtn000);
1041
      jjtc000 = false;
1042
    } else {
1043
      jjtree.popNode();
1044
    }
1045
    if (jjte000 instanceof RuntimeException) {
1046
      throw (RuntimeException)jjte000;
1047
    }
1048
    if (jjte000 instanceof ParseException) {
1049
      throw (ParseException)jjte000;
1050
    }
1051
    throw (Error)jjte000;
1052
  } finally {
1053
    if (jjtc000) {
1054
      jjtree.closeNodeScope(jjtn000, true);
1055
      jjtreeCloseNodeScope(jjtn000);
1056
    }
1057
  }
1058
/*@egen*/ 
1059
}
1060

    
1061
void SQLPattern() :
1062
{/*@bgen(jjtree) SQLPattern */
1063
  ASTSQLPattern jjtn000 = new ASTSQLPattern(JJTSQLPATTERN);
1064
  boolean jjtc000 = true;
1065
  jjtree.openNodeScope(jjtn000);
1066
  jjtreeOpenNodeScope(jjtn000);
1067
/*@egen*/
1068
}
1069
{/*@bgen(jjtree) SQLPattern */
1070
  try {
1071
/*@egen*/
1072
  ( <STRING_LITERAL> 
1073
  | "?" 
1074
  | SQLLvalue()
1075
  )/*@bgen(jjtree)*/
1076
  } catch (Throwable jjte000) {
1077
    if (jjtc000) {
1078
      jjtree.clearNodeScope(jjtn000);
1079
      jjtc000 = false;
1080
    } else {
1081
      jjtree.popNode();
1082
    }
1083
    if (jjte000 instanceof RuntimeException) {
1084
      throw (RuntimeException)jjte000;
1085
    }
1086
    if (jjte000 instanceof ParseException) {
1087
      throw (ParseException)jjte000;
1088
    }
1089
    throw (Error)jjte000;
1090
  } finally {
1091
    if (jjtc000) {
1092
      jjtree.closeNodeScope(jjtn000, true);
1093
      jjtreeCloseNodeScope(jjtn000);
1094
    }
1095
  }
1096
/*@egen*/
1097
}
1098

    
1099
void SQLProductExpr() :
1100
{/*@bgen(jjtree) SQLProductExpr */
1101
  ASTSQLProductExpr jjtn000 = new ASTSQLProductExpr(JJTSQLPRODUCTEXPR);
1102
  boolean jjtc000 = true;
1103
  jjtree.openNodeScope(jjtn000);
1104
  jjtreeOpenNodeScope(jjtn000);
1105
/*@egen*/}
1106
{/*@bgen(jjtree) SQLProductExpr */
1107
  try {
1108
/*@egen*/
1109
  SQLUnaryExpr()
1110
  ( ( "*"
1111
    | "/"
1112
    ) SQLUnaryExpr())*/*@bgen(jjtree)*/
1113
  } catch (Throwable jjte000) {
1114
    if (jjtc000) {
1115
      jjtree.clearNodeScope(jjtn000);
1116
      jjtc000 = false;
1117
    } else {
1118
      jjtree.popNode();
1119
    }
1120
    if (jjte000 instanceof RuntimeException) {
1121
      throw (RuntimeException)jjte000;
1122
    }
1123
    if (jjte000 instanceof ParseException) {
1124
      throw (ParseException)jjte000;
1125
    }
1126
    throw (Error)jjte000;
1127
  } finally {
1128
    if (jjtc000) {
1129
      jjtree.closeNodeScope(jjtn000, true);
1130
      jjtreeCloseNodeScope(jjtn000);
1131
    }
1132
  }
1133
/*@egen*/
1134
}
1135

    
1136
void SQLRightJoinClause() :
1137
{/*@bgen(jjtree) SQLRightJoinClause */
1138
  ASTSQLRightJoinClause jjtn000 = new ASTSQLRightJoinClause(JJTSQLRIGHTJOINCLAUSE);
1139
  boolean jjtc000 = true;
1140
  jjtree.openNodeScope(jjtn000);
1141
  jjtreeOpenNodeScope(jjtn000);
1142
/*@egen*/
1143
}
1144
{/*@bgen(jjtree) SQLRightJoinClause */
1145
  try {
1146
/*@egen*/
1147
  SQLCompareOp()
1148
  SQLSumExpr()
1149
  "(+)"/*@bgen(jjtree)*/
1150
  } catch (Throwable jjte000) {
1151
    if (jjtc000) {
1152
      jjtree.clearNodeScope(jjtn000);
1153
      jjtc000 = false;
1154
    } else {
1155
      jjtree.popNode();
1156
    }
1157
    if (jjte000 instanceof RuntimeException) {
1158
      throw (RuntimeException)jjte000;
1159
    }
1160
    if (jjte000 instanceof ParseException) {
1161
      throw (ParseException)jjte000;
1162
    }
1163
    throw (Error)jjte000;
1164
  } finally {
1165
    if (jjtc000) {
1166
      jjtree.closeNodeScope(jjtn000, true);
1167
      jjtreeCloseNodeScope(jjtn000);
1168
    }
1169
  }
1170
/*@egen*/
1171
}
1172

    
1173
void SQLUnion() :
1174
{/*@bgen(jjtree) SQLUnion */
1175
  ASTSQLUnion jjtn000 = new ASTSQLUnion(JJTSQLUNION);
1176
  boolean jjtc000 = true;
1177
  jjtree.openNodeScope(jjtn000);
1178
  jjtreeOpenNodeScope(jjtn000);
1179
/*@egen*/}
1180
{/*@bgen(jjtree) SQLUnion */
1181
        try {
1182
/*@egen*/
1183
	(
1184
	SQLTableRef()
1185
	|
1186
	<OPENPAREN>
1187
	SQLSelect()
1188
	<CLOSEPAREN>
1189
	)
1190
	<UNION>
1191
	(
1192
	SQLTableRef()
1193
	|
1194
	<OPENPAREN>
1195
	SQLSelect()
1196
	<CLOSEPAREN>
1197
	)/*@bgen(jjtree)*/
1198
        } catch (Throwable jjte000) {
1199
          if (jjtc000) {
1200
            jjtree.clearNodeScope(jjtn000);
1201
            jjtc000 = false;
1202
          } else {
1203
            jjtree.popNode();
1204
          }
1205
          if (jjte000 instanceof RuntimeException) {
1206
            throw (RuntimeException)jjte000;
1207
          }
1208
          if (jjte000 instanceof ParseException) {
1209
            throw (ParseException)jjte000;
1210
          }
1211
          throw (Error)jjte000;
1212
        } finally {
1213
          if (jjtc000) {
1214
            jjtree.closeNodeScope(jjtn000, true);
1215
            jjtreeCloseNodeScope(jjtn000);
1216
          }
1217
        }
1218
/*@egen*/
1219
}
1220

    
1221
void SQLSelect() :
1222
{/*@bgen(jjtree) SQLSelect */
1223
  ASTSQLSelect jjtn000 = new ASTSQLSelect(JJTSQLSELECT);
1224
  boolean jjtc000 = true;
1225
  jjtree.openNodeScope(jjtn000);
1226
  jjtreeOpenNodeScope(jjtn000);
1227
/*@egen*/}
1228
{/*@bgen(jjtree) SQLSelect */
1229
  try {
1230
/*@egen*/
1231
  <SELECT>
1232
  SQLSelectCols()
1233
  [ <INTO>
1234
    SQLSelectCols()
1235
  ]
1236
  <FROM>
1237
  SQLTableList()
1238
  [ SQLWhere()]
1239
  [ SQLGroupBy()]
1240
  [ SQLOrderBy()]/*@bgen(jjtree)*/
1241
  } catch (Throwable jjte000) {
1242
    if (jjtc000) {
1243
      jjtree.clearNodeScope(jjtn000);
1244
      jjtc000 = false;
1245
    } else {
1246
      jjtree.popNode();
1247
    }
1248
    if (jjte000 instanceof RuntimeException) {
1249
      throw (RuntimeException)jjte000;
1250
    }
1251
    if (jjte000 instanceof ParseException) {
1252
      throw (ParseException)jjte000;
1253
    }
1254
    throw (Error)jjte000;
1255
  } finally {
1256
    if (jjtc000) {
1257
      jjtree.closeNodeScope(jjtn000, true);
1258
      jjtreeCloseNodeScope(jjtn000);
1259
    }
1260
  }
1261
/*@egen*/
1262
}
1263

    
1264
void SQLSelectCols() :
1265
{/*@bgen(jjtree) SQLSelectCols */
1266
  ASTSQLSelectCols jjtn000 = new ASTSQLSelectCols(JJTSQLSELECTCOLS);
1267
  boolean jjtc000 = true;
1268
  jjtree.openNodeScope(jjtn000);
1269
  jjtreeOpenNodeScope(jjtn000);
1270
/*@egen*/}
1271
{/*@bgen(jjtree) SQLSelectCols */
1272
  try {
1273
/*@egen*/
1274
  [ <ALL>
1275
  | <DISTINCT>
1276
  ] [ "*" | SQLSelectList()]/*@bgen(jjtree)*/
1277
  } catch (Throwable jjte000) {
1278
    if (jjtc000) {
1279
      jjtree.clearNodeScope(jjtn000);
1280
      jjtc000 = false;
1281
    } else {
1282
      jjtree.popNode();
1283
    }
1284
    if (jjte000 instanceof RuntimeException) {
1285
      throw (RuntimeException)jjte000;
1286
    }
1287
    if (jjte000 instanceof ParseException) {
1288
      throw (ParseException)jjte000;
1289
    }
1290
    throw (Error)jjte000;
1291
  } finally {
1292
    if (jjtc000) {
1293
      jjtree.closeNodeScope(jjtn000, true);
1294
      jjtreeCloseNodeScope(jjtn000);
1295
    }
1296
  }
1297
/*@egen*/
1298
}
1299

    
1300
void SQLSelectList() :
1301
{/*@bgen(jjtree) SQLSelectList */
1302
  ASTSQLSelectList jjtn000 = new ASTSQLSelectList(JJTSQLSELECTLIST);
1303
  boolean jjtc000 = true;
1304
  jjtree.openNodeScope(jjtn000);
1305
  jjtreeOpenNodeScope(jjtn000);
1306
/*@egen*/}
1307
{/*@bgen(jjtree) SQLSelectList */
1308
  try {
1309
/*@egen*/
1310
  SQLSumExpr() [<AS> <ID>]
1311
  ( "," SQLSumExpr() [<AS> <ID>])*/*@bgen(jjtree)*/
1312
  } catch (Throwable jjte000) {
1313
    if (jjtc000) {
1314
      jjtree.clearNodeScope(jjtn000);
1315
      jjtc000 = false;
1316
    } else {
1317
      jjtree.popNode();
1318
    }
1319
    if (jjte000 instanceof RuntimeException) {
1320
      throw (RuntimeException)jjte000;
1321
    }
1322
    if (jjte000 instanceof ParseException) {
1323
      throw (ParseException)jjte000;
1324
    }
1325
    throw (Error)jjte000;
1326
  } finally {
1327
    if (jjtc000) {
1328
      jjtree.closeNodeScope(jjtn000, true);
1329
      jjtreeCloseNodeScope(jjtn000);
1330
    }
1331
  }
1332
/*@egen*/
1333
}
1334

    
1335
void SQLStatement() :
1336
{/*@bgen(jjtree) SQLStatement */
1337
  ASTSQLStatement jjtn000 = new ASTSQLStatement(JJTSQLSTATEMENT);
1338
  boolean jjtc000 = true;
1339
  jjtree.openNodeScope(jjtn000);
1340
  jjtreeOpenNodeScope(jjtn000);
1341
/*@egen*/}
1342
{/*@bgen(jjtree) SQLStatement */
1343
  try {
1344
/*@egen*/
1345
  ( 
1346
    SQLSelect() 
1347
  | SQLInsert()
1348
  | SQLUpdate()
1349
  | SQLDelete()
1350
  | SQLUnion()
1351
  ) ";"/*@bgen(jjtree)*/
1352
  } catch (Throwable jjte000) {
1353
    if (jjtc000) {
1354
      jjtree.clearNodeScope(jjtn000);
1355
      jjtc000 = false;
1356
    } else {
1357
      jjtree.popNode();
1358
    }
1359
    if (jjte000 instanceof RuntimeException) {
1360
      throw (RuntimeException)jjte000;
1361
    }
1362
    if (jjte000 instanceof ParseException) {
1363
      throw (ParseException)jjte000;
1364
    }
1365
    throw (Error)jjte000;
1366
  } finally {
1367
    if (jjtc000) {
1368
      jjtree.closeNodeScope(jjtn000, true);
1369
      jjtreeCloseNodeScope(jjtn000);
1370
    }
1371
  }
1372
/*@egen*/
1373
}
1374

    
1375
void SQLSumExpr() :
1376
{/*@bgen(jjtree) SQLSumExpr */
1377
  ASTSQLSumExpr jjtn000 = new ASTSQLSumExpr(JJTSQLSUMEXPR);
1378
  boolean jjtc000 = true;
1379
  jjtree.openNodeScope(jjtn000);
1380
  jjtreeOpenNodeScope(jjtn000);
1381
/*@egen*/}
1382
{/*@bgen(jjtree) SQLSumExpr */
1383
    try {
1384
/*@egen*/
1385
    SQLProductExpr()
1386
     ( LOOKAHEAD(2) ( "+" 
1387
                    | "-" 
1388
                    | "||" 
1389
                    ) SQLProductExpr()  )*/*@bgen(jjtree)*/
1390
    } catch (Throwable jjte000) {
1391
      if (jjtc000) {
1392
        jjtree.clearNodeScope(jjtn000);
1393
        jjtc000 = false;
1394
      } else {
1395
        jjtree.popNode();
1396
      }
1397
      if (jjte000 instanceof RuntimeException) {
1398
        throw (RuntimeException)jjte000;
1399
      }
1400
      if (jjte000 instanceof ParseException) {
1401
        throw (ParseException)jjte000;
1402
      }
1403
      throw (Error)jjte000;
1404
    } finally {
1405
      if (jjtc000) {
1406
        jjtree.closeNodeScope(jjtn000, true);
1407
        jjtreeCloseNodeScope(jjtn000);
1408
      }
1409
    }
1410
/*@egen*/
1411
}
1412

    
1413
void SQLTableList() :
1414
{/*@bgen(jjtree) SQLTableList */
1415
  ASTSQLTableList jjtn000 = new ASTSQLTableList(JJTSQLTABLELIST);
1416
  boolean jjtc000 = true;
1417
  jjtree.openNodeScope(jjtn000);
1418
  jjtreeOpenNodeScope(jjtn000);
1419
/*@egen*/}
1420
{/*@bgen(jjtree) SQLTableList */
1421
  try {
1422
/*@egen*/
1423
  SQLTableRef()
1424
  ( LOOKAHEAD(2) "," SQLTableRef() )*/*@bgen(jjtree)*/
1425
  } catch (Throwable jjte000) {
1426
    if (jjtc000) {
1427
      jjtree.clearNodeScope(jjtn000);
1428
      jjtc000 = false;
1429
    } else {
1430
      jjtree.popNode();
1431
    }
1432
    if (jjte000 instanceof RuntimeException) {
1433
      throw (RuntimeException)jjte000;
1434
    }
1435
    if (jjte000 instanceof ParseException) {
1436
      throw (ParseException)jjte000;
1437
    }
1438
    throw (Error)jjte000;
1439
  } finally {
1440
    if (jjtc000) {
1441
      jjtree.closeNodeScope(jjtn000, true);
1442
      jjtreeCloseNodeScope(jjtn000);
1443
    }
1444
  }
1445
/*@egen*/
1446
}
1447

    
1448

    
1449
void SQLTableRef() :
1450
{/*@bgen(jjtree) SQLTableRef */
1451
  ASTSQLTableRef jjtn000 = new ASTSQLTableRef(JJTSQLTABLEREF);
1452
  boolean jjtc000 = true;
1453
  jjtree.openNodeScope(jjtn000);
1454
  jjtreeOpenNodeScope(jjtn000);
1455
/*@egen*/
1456
}
1457
{/*@bgen(jjtree) SQLTableRef */
1458
  try {
1459
/*@egen*/
1460
  <ID>
1461
  [ <ID>
1462
  ]/*@bgen(jjtree)*/
1463
  } finally {
1464
    if (jjtc000) {
1465
      jjtree.closeNodeScope(jjtn000, true);
1466
      jjtreeCloseNodeScope(jjtn000);
1467
    }
1468
  }
1469
/*@egen*/
1470
}
1471

    
1472
void SQLTerm() :
1473
{/*@bgen(jjtree) SQLTerm */
1474
  ASTSQLTerm jjtn000 = new ASTSQLTerm(JJTSQLTERM);
1475
  boolean jjtc000 = true;
1476
  jjtree.openNodeScope(jjtn000);
1477
  jjtreeOpenNodeScope(jjtn000);
1478
/*@egen*/
1479
}
1480
{/*@bgen(jjtree) SQLTerm */
1481
  try {
1482
/*@egen*/
1483
  (
1484
    "(" 
1485
    SQLOrExpr()
1486
    ")"
1487
  | SQLColRef()
1488
  | SQLLiteral()
1489
  | SQLFunction()
1490
  )/*@bgen(jjtree)*/
1491
  } catch (Throwable jjte000) {
1492
    if (jjtc000) {
1493
      jjtree.clearNodeScope(jjtn000);
1494
      jjtc000 = false;
1495
    } else {
1496
      jjtree.popNode();
1497
    }
1498
    if (jjte000 instanceof RuntimeException) {
1499
      throw (RuntimeException)jjte000;
1500
    }
1501
    if (jjte000 instanceof ParseException) {
1502
      throw (ParseException)jjte000;
1503
    }
1504
    throw (Error)jjte000;
1505
  } finally {
1506
    if (jjtc000) {
1507
      jjtree.closeNodeScope(jjtn000, true);
1508
      jjtreeCloseNodeScope(jjtn000);
1509
    }
1510
  }
1511
/*@egen*/
1512
}
1513

    
1514
void SQLUnaryExpr() :
1515
{/*@bgen(jjtree) SQLUnaryExpr */
1516
  ASTSQLUnaryExpr jjtn000 = new ASTSQLUnaryExpr(JJTSQLUNARYEXPR);
1517
  boolean jjtc000 = true;
1518
  jjtree.openNodeScope(jjtn000);
1519
  jjtreeOpenNodeScope(jjtn000);
1520
/*@egen*/}
1521
{/*@bgen(jjtree) SQLUnaryExpr */
1522
  try {
1523
/*@egen*/
1524
  [ ( "+" 
1525
    | "-" 
1526
    )
1527
  ] SQLTerm()/*@bgen(jjtree)*/
1528
  } catch (Throwable jjte000) {
1529
    if (jjtc000) {
1530
      jjtree.clearNodeScope(jjtn000);
1531
      jjtc000 = false;
1532
    } else {
1533
      jjtree.popNode();
1534
    }
1535
    if (jjte000 instanceof RuntimeException) {
1536
      throw (RuntimeException)jjte000;
1537
    }
1538
    if (jjte000 instanceof ParseException) {
1539
      throw (ParseException)jjte000;
1540
    }
1541
    throw (Error)jjte000;
1542
  } finally {
1543
    if (jjtc000) {
1544
      jjtree.closeNodeScope(jjtn000, true);
1545
      jjtreeCloseNodeScope(jjtn000);
1546
    }
1547
  }
1548
/*@egen*/
1549
}
1550

    
1551
void SQLUpdate() :
1552
{/*@bgen(jjtree) SQLUpdate */
1553
  ASTSQLUpdate jjtn000 = new ASTSQLUpdate(JJTSQLUPDATE);
1554
  boolean jjtc000 = true;
1555
  jjtree.openNodeScope(jjtn000);
1556
  jjtreeOpenNodeScope(jjtn000);
1557
/*@egen*/}
1558
{/*@bgen(jjtree) SQLUpdate */
1559
  try {
1560
/*@egen*/
1561
  <UPDATE>
1562
  SQLTableList()
1563
  <SET>
1564
  ( 
1565
    LOOKAHEAD(SQLLvalue() "=") SQLUpdateAssignment()
1566
    [
1567
      ","
1568
    ] 
1569
  )+
1570

    
1571
  [ SQLWhere() ]/*@bgen(jjtree)*/
1572
  } catch (Throwable jjte000) {
1573
    if (jjtc000) {
1574
      jjtree.clearNodeScope(jjtn000);
1575
      jjtc000 = false;
1576
    } else {
1577
      jjtree.popNode();
1578
    }
1579
    if (jjte000 instanceof RuntimeException) {
1580
      throw (RuntimeException)jjte000;
1581
    }
1582
    if (jjte000 instanceof ParseException) {
1583
      throw (ParseException)jjte000;
1584
    }
1585
    throw (Error)jjte000;
1586
  } finally {
1587
    if (jjtc000) {
1588
      jjtree.closeNodeScope(jjtn000, true);
1589
      jjtreeCloseNodeScope(jjtn000);
1590
    }
1591
  }
1592
/*@egen*/
1593
}
1594

    
1595
void SQLUpdateAssignment() :
1596
{/*@bgen(jjtree) SQLUpdateAssignment */
1597
  ASTSQLUpdateAssignment jjtn000 = new ASTSQLUpdateAssignment(JJTSQLUPDATEASSIGNMENT);
1598
  boolean jjtc000 = true;
1599
  jjtree.openNodeScope(jjtn000);
1600
  jjtreeOpenNodeScope(jjtn000);
1601
/*@egen*/}
1602
{/*@bgen(jjtree) SQLUpdateAssignment */
1603
  try {
1604
/*@egen*/
1605
  SQLLvalue() "="
1606
  (
1607
      LOOKAHEAD(SQLTerm() <CONCAT> ) 
1608
      SQLTerm() 
1609
      ( <CONCAT> 
1610
        SQLTerm() )+
1611
      | SQLSumExpr() )/*@bgen(jjtree)*/
1612
  } catch (Throwable jjte000) {
1613
    if (jjtc000) {
1614
      jjtree.clearNodeScope(jjtn000);
1615
      jjtc000 = false;
1616
    } else {
1617
      jjtree.popNode();
1618
    }
1619
    if (jjte000 instanceof RuntimeException) {
1620
      throw (RuntimeException)jjte000;
1621
    }
1622
    if (jjte000 instanceof ParseException) {
1623
      throw (ParseException)jjte000;
1624
    }
1625
    throw (Error)jjte000;
1626
  } finally {
1627
    if (jjtc000) {
1628
      jjtree.closeNodeScope(jjtn000, true);
1629
      jjtreeCloseNodeScope(jjtn000);
1630
    }
1631
  }
1632
/*@egen*/
1633
}
1634

    
1635
void SQLLValueElement() :
1636
{/*@bgen(jjtree) SQLLValueElement */
1637
  ASTSQLLValueElement jjtn000 = new ASTSQLLValueElement(JJTSQLLVALUEELEMENT);
1638
  boolean jjtc000 = true;
1639
  jjtree.openNodeScope(jjtn000);
1640
  jjtreeOpenNodeScope(jjtn000);
1641
/*@egen*/}
1642
{/*@bgen(jjtree) SQLLValueElement */
1643
  try {
1644
/*@egen*/
1645
  ( <NULL> 
1646
  | SQLSumExpr() 
1647
  | SQLSelect())/*@bgen(jjtree)*/
1648
  } catch (Throwable jjte000) {
1649
    if (jjtc000) {
1650
      jjtree.clearNodeScope(jjtn000);
1651
      jjtc000 = false;
1652
    } else {
1653
      jjtree.popNode();
1654
    }
1655
    if (jjte000 instanceof RuntimeException) {
1656
      throw (RuntimeException)jjte000;
1657
    }
1658
    if (jjte000 instanceof ParseException) {
1659
      throw (ParseException)jjte000;
1660
    }
1661
    throw (Error)jjte000;
1662
  } finally {
1663
    if (jjtc000) {
1664
      jjtree.closeNodeScope(jjtn000, true);
1665
      jjtreeCloseNodeScope(jjtn000);
1666
    }
1667
  }
1668
/*@egen*/ 
1669
}
1670

    
1671
void SQLLValueList() :
1672
{/*@bgen(jjtree) SQLLValueList */
1673
  ASTSQLLValueList jjtn000 = new ASTSQLLValueList(JJTSQLLVALUELIST);
1674
  boolean jjtc000 = true;
1675
  jjtree.openNodeScope(jjtn000);
1676
  jjtreeOpenNodeScope(jjtn000);
1677
/*@egen*/}
1678
{/*@bgen(jjtree) SQLLValueList */
1679
  try {
1680
/*@egen*/
1681
  SQLLValueElement() 
1682
  ( "," 
1683
    SQLLValueElement()
1684
  )*/*@bgen(jjtree)*/
1685
  } catch (Throwable jjte000) {
1686
    if (jjtc000) {
1687
      jjtree.clearNodeScope(jjtn000);
1688
      jjtc000 = false;
1689
    } else {
1690
      jjtree.popNode();
1691
    }
1692
    if (jjte000 instanceof RuntimeException) {
1693
      throw (RuntimeException)jjte000;
1694
    }
1695
    if (jjte000 instanceof ParseException) {
1696
      throw (ParseException)jjte000;
1697
    }
1698
    throw (Error)jjte000;
1699
  } finally {
1700
    if (jjtc000) {
1701
      jjtree.closeNodeScope(jjtn000, true);
1702
      jjtreeCloseNodeScope(jjtn000);
1703
    }
1704
  }
1705
/*@egen*/
1706
}
1707

    
1708
void SQLWhere() :
1709
{/*@bgen(jjtree) SQLWhere */
1710
  ASTSQLWhere jjtn000 = new ASTSQLWhere(JJTSQLWHERE);
1711
  boolean jjtc000 = true;
1712
  jjtree.openNodeScope(jjtn000);
1713
  jjtreeOpenNodeScope(jjtn000);
1714
/*@egen*/}
1715
{/*@bgen(jjtree) SQLWhere */
1716
  try {
1717
/*@egen*/
1718
  <WHERE> SQLOrExpr()/*@bgen(jjtree)*/
1719
  } catch (Throwable jjte000) {
1720
    if (jjtc000) {
1721
      jjtree.clearNodeScope(jjtn000);
1722
      jjtc000 = false;
1723
    } else {
1724
      jjtree.popNode();
1725
    }
1726
    if (jjte000 instanceof RuntimeException) {
1727
      throw (RuntimeException)jjte000;
1728
    }
1729
    if (jjte000 instanceof ParseException) {
1730
      throw (ParseException)jjte000;
1731
    }
1732
    throw (Error)jjte000;
1733
  } finally {
1734
    if (jjtc000) {
1735
      jjtree.closeNodeScope(jjtn000, true);
1736
      jjtreeCloseNodeScope(jjtn000);
1737
    }
1738
  }
1739
/*@egen*/
1740
}