Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libGDBMS / grammar / sql.jj.jj @ 1956

History | View | Annotate | Download (39.6 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
  | < CUSTOM: "custom" >
72
  | < DESC: "desc" >
73
  | < DISTINCT: "distinct" >
74
  | < FROM: "from" >
75
  | < GROUP: "group" >
76
  | < HAVING: "having" >
77
  | < IN: "in" >
78
  | < IS: "is" >
79
  | < LIKE: "like" >
80
  | < MAX: "max" >
81
  | < MIN: "min" >
82
  | < NOT: "not" >
83
  | < NULL: "null" >
84
  | < OR: "or" >
85
  | < ORDER: "order" >
86
  | < SELECT: "select" >
87
  | < UNION: "union" >
88
  | < SPACES: "spaces" >
89
  | < SUBSTR: "substr" >
90
  | < SUM: "sum" >
91
  | < TABLES: "tables" >
92
  | < UPPER: "upper" >
93
  | < WHERE: "where" >
94

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

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

    
124

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

    
132

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

    
165

    
166

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

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

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

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

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

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

    
386
void SQLCustom() :
387
{/*@bgen(jjtree) SQLCustom */
388
  ASTSQLCustom jjtn000 = new ASTSQLCustom(JJTSQLCUSTOM);
389
  boolean jjtc000 = true;
390
  jjtree.openNodeScope(jjtn000);
391
  jjtreeOpenNodeScope(jjtn000);
392
/*@egen*/}
393
{/*@bgen(jjtree) SQLCustom */
394
        try {
395
/*@egen*/
396
	<CUSTOM> <ID> 
397
	<TABLES> SQLTableList() 
398
	<VALUES> SQLFunctionArgs()/*@bgen(jjtree)*/
399
        } catch (Throwable jjte000) {
400
          if (jjtc000) {
401
            jjtree.clearNodeScope(jjtn000);
402
            jjtc000 = false;
403
          } else {
404
            jjtree.popNode();
405
          }
406
          if (jjte000 instanceof RuntimeException) {
407
            throw (RuntimeException)jjte000;
408
          }
409
          if (jjte000 instanceof ParseException) {
410
            throw (ParseException)jjte000;
411
          }
412
          throw (Error)jjte000;
413
        } finally {
414
          if (jjtc000) {
415
            jjtree.closeNodeScope(jjtn000, true);
416
            jjtreeCloseNodeScope(jjtn000);
417
          }
418
        }
419
/*@egen*/
420
}
421

    
422
void SQLDelete() :
423
{/*@bgen(jjtree) SQLDelete */
424
  ASTSQLDelete jjtn000 = new ASTSQLDelete(JJTSQLDELETE);
425
  boolean jjtc000 = true;
426
  jjtree.openNodeScope(jjtn000);
427
  jjtreeOpenNodeScope(jjtn000);
428
/*@egen*/}
429
{/*@bgen(jjtree) SQLDelete */
430
  try {
431
/*@egen*/
432
  <DELETE> <FROM>
433
  SQLTableList()
434
  [ SQLWhere() ]/*@bgen(jjtree)*/
435
  } catch (Throwable jjte000) {
436
    if (jjtc000) {
437
      jjtree.clearNodeScope(jjtn000);
438
      jjtc000 = false;
439
    } else {
440
      jjtree.popNode();
441
    }
442
    if (jjte000 instanceof RuntimeException) {
443
      throw (RuntimeException)jjte000;
444
    }
445
    if (jjte000 instanceof ParseException) {
446
      throw (ParseException)jjte000;
447
    }
448
    throw (Error)jjte000;
449
  } finally {
450
    if (jjtc000) {
451
      jjtree.closeNodeScope(jjtn000, true);
452
      jjtreeCloseNodeScope(jjtn000);
453
    }
454
  }
455
/*@egen*/
456
}
457

    
458
void SQLExistsClause() :
459
{/*@bgen(jjtree) SQLExistsClause */
460
  ASTSQLExistsClause jjtn000 = new ASTSQLExistsClause(JJTSQLEXISTSCLAUSE);
461
  boolean jjtc000 = true;
462
  jjtree.openNodeScope(jjtn000);
463
  jjtreeOpenNodeScope(jjtn000);
464
/*@egen*/}
465
{/*@bgen(jjtree) SQLExistsClause */
466
  try {
467
/*@egen*/
468
  <EXISTS> 
469
  "(" SQLSelect() ")"/*@bgen(jjtree)*/
470
  } catch (Throwable jjte000) {
471
    if (jjtc000) {
472
      jjtree.clearNodeScope(jjtn000);
473
      jjtc000 = false;
474
    } else {
475
      jjtree.popNode();
476
    }
477
    if (jjte000 instanceof RuntimeException) {
478
      throw (RuntimeException)jjte000;
479
    }
480
    if (jjte000 instanceof ParseException) {
481
      throw (ParseException)jjte000;
482
    }
483
    throw (Error)jjte000;
484
  } finally {
485
    if (jjtc000) {
486
      jjtree.closeNodeScope(jjtn000, true);
487
      jjtreeCloseNodeScope(jjtn000);
488
    }
489
  }
490
/*@egen*/
491
}
492

    
493
void SQLFunction() :
494
{/*@bgen(jjtree) SQLFunction */
495
  ASTSQLFunction jjtn000 = new ASTSQLFunction(JJTSQLFUNCTION);
496
  boolean jjtc000 = true;
497
  jjtree.openNodeScope(jjtn000);
498
  jjtreeOpenNodeScope(jjtn000);
499
/*@egen*/}
500
{/*@bgen(jjtree) SQLFunction */
501
  try {
502
/*@egen*/
503
  <ID> 
504
    SQLFunctionArgs()/*@bgen(jjtree)*/
505
  } catch (Throwable jjte000) {
506
    if (jjtc000) {
507
      jjtree.clearNodeScope(jjtn000);
508
      jjtc000 = false;
509
    } else {
510
      jjtree.popNode();
511
    }
512
    if (jjte000 instanceof RuntimeException) {
513
      throw (RuntimeException)jjte000;
514
    }
515
    if (jjte000 instanceof ParseException) {
516
      throw (ParseException)jjte000;
517
    }
518
    throw (Error)jjte000;
519
  } finally {
520
    if (jjtc000) {
521
      jjtree.closeNodeScope(jjtn000, true);
522
      jjtreeCloseNodeScope(jjtn000);
523
    }
524
  }
525
/*@egen*/ 
526
}
527

    
528
void SQLFunctionArgs() :
529
{/*@bgen(jjtree) SQLFunctionArgs */
530
  ASTSQLFunctionArgs jjtn000 = new ASTSQLFunctionArgs(JJTSQLFUNCTIONARGS);
531
  boolean jjtc000 = true;
532
  jjtree.openNodeScope(jjtn000);
533
  jjtreeOpenNodeScope(jjtn000);
534
/*@egen*/}
535
{/*@bgen(jjtree) SQLFunctionArgs */
536
  try {
537
/*@egen*/
538
  "(" 
539
  [ SQLSumExpr() 
540
    ( "," 
541
      SQLSumExpr() )*
542
  ]
543
  ")"/*@bgen(jjtree)*/
544
  } catch (Throwable jjte000) {
545
    if (jjtc000) {
546
      jjtree.clearNodeScope(jjtn000);
547
      jjtc000 = false;
548
    } else {
549
      jjtree.popNode();
550
    }
551
    if (jjte000 instanceof RuntimeException) {
552
      throw (RuntimeException)jjte000;
553
    }
554
    if (jjte000 instanceof ParseException) {
555
      throw (ParseException)jjte000;
556
    }
557
    throw (Error)jjte000;
558
  } finally {
559
    if (jjtc000) {
560
      jjtree.closeNodeScope(jjtn000, true);
561
      jjtreeCloseNodeScope(jjtn000);
562
    }
563
  }
564
/*@egen*/ 
565
}
566

    
567
void SQLGroupBy() :
568
{/*@bgen(jjtree) SQLGroupBy */
569
  ASTSQLGroupBy jjtn000 = new ASTSQLGroupBy(JJTSQLGROUPBY);
570
  boolean jjtc000 = true;
571
  jjtree.openNodeScope(jjtn000);
572
  jjtreeOpenNodeScope(jjtn000);
573
/*@egen*/}
574
{/*@bgen(jjtree) SQLGroupBy */
575
  try {
576
/*@egen*/
577
  <GROUP> <BY> 
578
  SQLOrderByList()/*@bgen(jjtree)*/
579
  } catch (Throwable jjte000) {
580
    if (jjtc000) {
581
      jjtree.clearNodeScope(jjtn000);
582
      jjtc000 = false;
583
    } else {
584
      jjtree.popNode();
585
    }
586
    if (jjte000 instanceof RuntimeException) {
587
      throw (RuntimeException)jjte000;
588
    }
589
    if (jjte000 instanceof ParseException) {
590
      throw (ParseException)jjte000;
591
    }
592
    throw (Error)jjte000;
593
  } finally {
594
    if (jjtc000) {
595
      jjtree.closeNodeScope(jjtn000, true);
596
      jjtreeCloseNodeScope(jjtn000);
597
    }
598
  }
599
/*@egen*/ 
600
}
601

    
602
void SQLInClause() :
603
{/*@bgen(jjtree) SQLInClause */
604
  ASTSQLInClause jjtn000 = new ASTSQLInClause(JJTSQLINCLAUSE);
605
  boolean jjtc000 = true;
606
  jjtree.openNodeScope(jjtn000);
607
  jjtreeOpenNodeScope(jjtn000);
608
/*@egen*/}
609
{/*@bgen(jjtree) SQLInClause */
610
  try {
611
/*@egen*/
612
  [ <NOT> ]
613
  <IN> 
614
  "(" 
615
  SQLLValueList() 
616
  ")"/*@bgen(jjtree)*/
617
  } catch (Throwable jjte000) {
618
    if (jjtc000) {
619
      jjtree.clearNodeScope(jjtn000);
620
      jjtc000 = false;
621
    } else {
622
      jjtree.popNode();
623
    }
624
    if (jjte000 instanceof RuntimeException) {
625
      throw (RuntimeException)jjte000;
626
    }
627
    if (jjte000 instanceof ParseException) {
628
      throw (ParseException)jjte000;
629
    }
630
    throw (Error)jjte000;
631
  } finally {
632
    if (jjtc000) {
633
      jjtree.closeNodeScope(jjtn000, true);
634
      jjtreeCloseNodeScope(jjtn000);
635
    }
636
  }
637
/*@egen*/ 
638
}
639

    
640
void SQLInsert() :
641
{/*@bgen(jjtree) SQLInsert */
642
  ASTSQLInsert jjtn000 = new ASTSQLInsert(JJTSQLINSERT);
643
  boolean jjtc000 = true;
644
  jjtree.openNodeScope(jjtn000);
645
  jjtreeOpenNodeScope(jjtn000);
646
/*@egen*/}
647
{/*@bgen(jjtree) SQLInsert */
648
  try {
649
/*@egen*/
650
  <INSERT> <INTO> 
651
  SQLTableList() 
652
  [
653
    "(" 
654
    SQLSelectCols() 
655
    ")" 
656
    <VALUES> 
657
  ]
658
  "("
659
  SQLSelectCols() 
660
  ")"/*@bgen(jjtree)*/
661
  } catch (Throwable jjte000) {
662
    if (jjtc000) {
663
      jjtree.clearNodeScope(jjtn000);
664
      jjtc000 = false;
665
    } else {
666
      jjtree.popNode();
667
    }
668
    if (jjte000 instanceof RuntimeException) {
669
      throw (RuntimeException)jjte000;
670
    }
671
    if (jjte000 instanceof ParseException) {
672
      throw (ParseException)jjte000;
673
    }
674
    throw (Error)jjte000;
675
  } finally {
676
    if (jjtc000) {
677
      jjtree.closeNodeScope(jjtn000, true);
678
      jjtreeCloseNodeScope(jjtn000);
679
    }
680
  }
681
/*@egen*/
682
}
683

    
684
void SQLIsClause() :
685
{/*@bgen(jjtree) SQLIsClause */
686
  ASTSQLIsClause jjtn000 = new ASTSQLIsClause(JJTSQLISCLAUSE);
687
  boolean jjtc000 = true;
688
  jjtree.openNodeScope(jjtn000);
689
  jjtreeOpenNodeScope(jjtn000);
690
/*@egen*/}
691
{/*@bgen(jjtree) SQLIsClause */
692
  try {
693
/*@egen*/
694
  SQLColRef() 
695
  <IS> 
696
  [ <NOT>  ]
697
  <NULL>/*@bgen(jjtree)*/
698
  } catch (Throwable jjte000) {
699
    if (jjtc000) {
700
      jjtree.clearNodeScope(jjtn000);
701
      jjtc000 = false;
702
    } else {
703
      jjtree.popNode();
704
    }
705
    if (jjte000 instanceof RuntimeException) {
706
      throw (RuntimeException)jjte000;
707
    }
708
    if (jjte000 instanceof ParseException) {
709
      throw (ParseException)jjte000;
710
    }
711
    throw (Error)jjte000;
712
  } finally {
713
    if (jjtc000) {
714
      jjtree.closeNodeScope(jjtn000, true);
715
      jjtreeCloseNodeScope(jjtn000);
716
    }
717
  }
718
/*@egen*/ 
719
}
720

    
721
void SQLLeftJoinClause() :
722
{/*@bgen(jjtree) SQLLeftJoinClause */
723
  ASTSQLLeftJoinClause jjtn000 = new ASTSQLLeftJoinClause(JJTSQLLEFTJOINCLAUSE);
724
  boolean jjtc000 = true;
725
  jjtree.openNodeScope(jjtn000);
726
  jjtreeOpenNodeScope(jjtn000);
727
/*@egen*/
728
}
729
{/*@bgen(jjtree) SQLLeftJoinClause */
730
  try {
731
/*@egen*/
732
  "(+)" SQLCompareOp() 
733
  SQLSumExpr()/*@bgen(jjtree)*/
734
  } catch (Throwable jjte000) {
735
    if (jjtc000) {
736
      jjtree.clearNodeScope(jjtn000);
737
      jjtc000 = false;
738
    } else {
739
      jjtree.popNode();
740
    }
741
    if (jjte000 instanceof RuntimeException) {
742
      throw (RuntimeException)jjte000;
743
    }
744
    if (jjte000 instanceof ParseException) {
745
      throw (ParseException)jjte000;
746
    }
747
    throw (Error)jjte000;
748
  } finally {
749
    if (jjtc000) {
750
      jjtree.closeNodeScope(jjtn000, true);
751
      jjtreeCloseNodeScope(jjtn000);
752
    }
753
  }
754
/*@egen*/
755
}
756

    
757
void SQLLikeClause() :
758
{/*@bgen(jjtree) SQLLikeClause */
759
  ASTSQLLikeClause jjtn000 = new ASTSQLLikeClause(JJTSQLLIKECLAUSE);
760
  boolean jjtc000 = true;
761
  jjtree.openNodeScope(jjtn000);
762
  jjtreeOpenNodeScope(jjtn000);
763
/*@egen*/}
764
{/*@bgen(jjtree) SQLLikeClause */
765
  try {
766
/*@egen*/
767
  [ <NOT>  ]
768
  <LIKE> 
769
  SQLPattern()/*@bgen(jjtree)*/
770
  } catch (Throwable jjte000) {
771
    if (jjtc000) {
772
      jjtree.clearNodeScope(jjtn000);
773
      jjtc000 = false;
774
    } else {
775
      jjtree.popNode();
776
    }
777
    if (jjte000 instanceof RuntimeException) {
778
      throw (RuntimeException)jjte000;
779
    }
780
    if (jjte000 instanceof ParseException) {
781
      throw (ParseException)jjte000;
782
    }
783
    throw (Error)jjte000;
784
  } finally {
785
    if (jjtc000) {
786
      jjtree.closeNodeScope(jjtn000, true);
787
      jjtreeCloseNodeScope(jjtn000);
788
    }
789
  }
790
/*@egen*/ 
791
}
792

    
793
void SQLLiteral() :
794
{/*@bgen(jjtree) SQLLiteral */
795
  ASTSQLLiteral jjtn000 = new ASTSQLLiteral(JJTSQLLITERAL);
796
  boolean jjtc000 = true;
797
  jjtree.openNodeScope(jjtn000);
798
  jjtreeOpenNodeScope(jjtn000);
799
/*@egen*/
800
}
801
{/*@bgen(jjtree) SQLLiteral */
802
  try {
803
/*@egen*/
804
  ( <STRING_LITERAL> 
805
  | <INTEGER_LITERAL> 
806
  | <FLOATING_POINT_LITERAL> 
807
  | <SPACES> 
808
  | <ASTERISK> 
809
  )/*@bgen(jjtree)*/
810
  } finally {
811
    if (jjtc000) {
812
      jjtree.closeNodeScope(jjtn000, true);
813
      jjtreeCloseNodeScope(jjtn000);
814
    }
815
  }
816
/*@egen*/
817
}
818

    
819
void SQLLvalue() :
820
{/*@bgen(jjtree) SQLLvalue */
821
  ASTSQLLvalue jjtn000 = new ASTSQLLvalue(JJTSQLLVALUE);
822
  boolean jjtc000 = true;
823
  jjtree.openNodeScope(jjtn000);
824
  jjtreeOpenNodeScope(jjtn000);
825
/*@egen*/
826
}
827
{/*@bgen(jjtree) SQLLvalue */
828
  try {
829
/*@egen*/
830
  (
831
    SQLLvalueTerm()
832
  )/*@bgen(jjtree)*/
833
  } catch (Throwable jjte000) {
834
    if (jjtc000) {
835
      jjtree.clearNodeScope(jjtn000);
836
      jjtc000 = false;
837
    } else {
838
      jjtree.popNode();
839
    }
840
    if (jjte000 instanceof RuntimeException) {
841
      throw (RuntimeException)jjte000;
842
    }
843
    if (jjte000 instanceof ParseException) {
844
      throw (ParseException)jjte000;
845
    }
846
    throw (Error)jjte000;
847
  } finally {
848
    if (jjtc000) {
849
      jjtree.closeNodeScope(jjtn000, true);
850
      jjtreeCloseNodeScope(jjtn000);
851
    }
852
  }
853
/*@egen*/
854
}
855

    
856
void SQLLvalueTerm() :
857
{/*@bgen(jjtree) SQLLvalueTerm */
858
  ASTSQLLvalueTerm jjtn000 = new ASTSQLLvalueTerm(JJTSQLLVALUETERM);
859
  boolean jjtc000 = true;
860
  jjtree.openNodeScope(jjtn000);
861
  jjtreeOpenNodeScope(jjtn000);
862
/*@egen*/
863
}
864
{/*@bgen(jjtree) SQLLvalueTerm */
865
  try {
866
/*@egen*/
867
  <ID> 
868
  ( <DOT> <ID> )*/*@bgen(jjtree)*/
869
  } finally {
870
    if (jjtc000) {
871
      jjtree.closeNodeScope(jjtn000, true);
872
      jjtreeCloseNodeScope(jjtn000);
873
    }
874
  }
875
/*@egen*/
876
}
877

    
878
void SQLNotExpr() :
879
{/*@bgen(jjtree) SQLNotExpr */
880
  ASTSQLNotExpr jjtn000 = new ASTSQLNotExpr(JJTSQLNOTEXPR);
881
  boolean jjtc000 = true;
882
  jjtree.openNodeScope(jjtn000);
883
  jjtreeOpenNodeScope(jjtn000);
884
/*@egen*/}
885
{/*@bgen(jjtree) SQLNotExpr */
886
  try {
887
/*@egen*/
888
  [ <NOT> ] 
889
  SQLCompareExpr()/*@bgen(jjtree)*/
890
  } catch (Throwable jjte000) {
891
    if (jjtc000) {
892
      jjtree.clearNodeScope(jjtn000);
893
      jjtc000 = false;
894
    } else {
895
      jjtree.popNode();
896
    }
897
    if (jjte000 instanceof RuntimeException) {
898
      throw (RuntimeException)jjte000;
899
    }
900
    if (jjte000 instanceof ParseException) {
901
      throw (ParseException)jjte000;
902
    }
903
    throw (Error)jjte000;
904
  } finally {
905
    if (jjtc000) {
906
      jjtree.closeNodeScope(jjtn000, true);
907
      jjtreeCloseNodeScope(jjtn000);
908
    }
909
  }
910
/*@egen*/ 
911
}
912

    
913
void SQLOrderBy() :
914
{/*@bgen(jjtree) SQLOrderBy */
915
  ASTSQLOrderBy jjtn000 = new ASTSQLOrderBy(JJTSQLORDERBY);
916
  boolean jjtc000 = true;
917
  jjtree.openNodeScope(jjtn000);
918
  jjtreeOpenNodeScope(jjtn000);
919
/*@egen*/}
920
{/*@bgen(jjtree) SQLOrderBy */
921
  try {
922
/*@egen*/
923
  <ORDER> <BY> 
924
  SQLOrderByList()/*@bgen(jjtree)*/
925
  } catch (Throwable jjte000) {
926
    if (jjtc000) {
927
      jjtree.clearNodeScope(jjtn000);
928
      jjtc000 = false;
929
    } else {
930
      jjtree.popNode();
931
    }
932
    if (jjte000 instanceof RuntimeException) {
933
      throw (RuntimeException)jjte000;
934
    }
935
    if (jjte000 instanceof ParseException) {
936
      throw (ParseException)jjte000;
937
    }
938
    throw (Error)jjte000;
939
  } finally {
940
    if (jjtc000) {
941
      jjtree.closeNodeScope(jjtn000, true);
942
      jjtreeCloseNodeScope(jjtn000);
943
    }
944
  }
945
/*@egen*/
946
}
947

    
948
void SQLOrderByElem() :
949
{/*@bgen(jjtree) SQLOrderByElem */
950
  ASTSQLOrderByElem jjtn000 = new ASTSQLOrderByElem(JJTSQLORDERBYELEM);
951
  boolean jjtc000 = true;
952
  jjtree.openNodeScope(jjtn000);
953
  jjtreeOpenNodeScope(jjtn000);
954
/*@egen*/}
955
{/*@bgen(jjtree) SQLOrderByElem */
956
  try {
957
/*@egen*/
958
  SQLColRef()
959
  [ SQLOrderDirection()]/*@bgen(jjtree)*/
960
  } catch (Throwable jjte000) {
961
    if (jjtc000) {
962
      jjtree.clearNodeScope(jjtn000);
963
      jjtc000 = false;
964
    } else {
965
      jjtree.popNode();
966
    }
967
    if (jjte000 instanceof RuntimeException) {
968
      throw (RuntimeException)jjte000;
969
    }
970
    if (jjte000 instanceof ParseException) {
971
      throw (ParseException)jjte000;
972
    }
973
    throw (Error)jjte000;
974
  } finally {
975
    if (jjtc000) {
976
      jjtree.closeNodeScope(jjtn000, true);
977
      jjtreeCloseNodeScope(jjtn000);
978
    }
979
  }
980
/*@egen*/
981
}
982

    
983
void SQLOrderByList() :
984
{/*@bgen(jjtree) SQLOrderByList */
985
  ASTSQLOrderByList jjtn000 = new ASTSQLOrderByList(JJTSQLORDERBYLIST);
986
  boolean jjtc000 = true;
987
  jjtree.openNodeScope(jjtn000);
988
  jjtreeOpenNodeScope(jjtn000);
989
/*@egen*/}
990
{/*@bgen(jjtree) SQLOrderByList */
991
  try {
992
/*@egen*/
993
  SQLOrderByElem()
994
  ( LOOKAHEAD(2)
995
    "," 
996
    SQLOrderByElem() )*/*@bgen(jjtree)*/
997
  } catch (Throwable jjte000) {
998
    if (jjtc000) {
999
      jjtree.clearNodeScope(jjtn000);
1000
      jjtc000 = false;
1001
    } else {
1002
      jjtree.popNode();
1003
    }
1004
    if (jjte000 instanceof RuntimeException) {
1005
      throw (RuntimeException)jjte000;
1006
    }
1007
    if (jjte000 instanceof ParseException) {
1008
      throw (ParseException)jjte000;
1009
    }
1010
    throw (Error)jjte000;
1011
  } finally {
1012
    if (jjtc000) {
1013
      jjtree.closeNodeScope(jjtn000, true);
1014
      jjtreeCloseNodeScope(jjtn000);
1015
    }
1016
  }
1017
/*@egen*/
1018
}
1019

    
1020
void SQLOrderDirection() :
1021
{/*@bgen(jjtree) SQLOrderDirection */
1022
  ASTSQLOrderDirection jjtn000 = new ASTSQLOrderDirection(JJTSQLORDERDIRECTION);
1023
  boolean jjtc000 = true;
1024
  jjtree.openNodeScope(jjtn000);
1025
  jjtreeOpenNodeScope(jjtn000);
1026
/*@egen*/}
1027
{/*@bgen(jjtree) SQLOrderDirection */
1028
  try {
1029
/*@egen*/
1030
  (
1031
    <ASC>
1032
  | <DESC>
1033
  )/*@bgen(jjtree)*/
1034
  } finally {
1035
    if (jjtc000) {
1036
      jjtree.closeNodeScope(jjtn000, true);
1037
      jjtreeCloseNodeScope(jjtn000);
1038
    }
1039
  }
1040
/*@egen*/
1041
}
1042

    
1043
void SQLOrExpr() :
1044
{/*@bgen(jjtree) SQLOrExpr */
1045
  ASTSQLOrExpr jjtn000 = new ASTSQLOrExpr(JJTSQLOREXPR);
1046
  boolean jjtc000 = true;
1047
  jjtree.openNodeScope(jjtn000);
1048
  jjtreeOpenNodeScope(jjtn000);
1049
/*@egen*/}
1050
{/*@bgen(jjtree) SQLOrExpr */
1051
  try {
1052
/*@egen*/
1053
  SQLAndExpr()
1054
  ( <OR> 
1055
	SQLAndExpr() )*/*@bgen(jjtree)*/
1056
  } catch (Throwable jjte000) {
1057
    if (jjtc000) {
1058
      jjtree.clearNodeScope(jjtn000);
1059
      jjtc000 = false;
1060
    } else {
1061
      jjtree.popNode();
1062
    }
1063
    if (jjte000 instanceof RuntimeException) {
1064
      throw (RuntimeException)jjte000;
1065
    }
1066
    if (jjte000 instanceof ParseException) {
1067
      throw (ParseException)jjte000;
1068
    }
1069
    throw (Error)jjte000;
1070
  } finally {
1071
    if (jjtc000) {
1072
      jjtree.closeNodeScope(jjtn000, true);
1073
      jjtreeCloseNodeScope(jjtn000);
1074
    }
1075
  }
1076
/*@egen*/ 
1077
}
1078

    
1079
void SQLPattern() :
1080
{/*@bgen(jjtree) SQLPattern */
1081
  ASTSQLPattern jjtn000 = new ASTSQLPattern(JJTSQLPATTERN);
1082
  boolean jjtc000 = true;
1083
  jjtree.openNodeScope(jjtn000);
1084
  jjtreeOpenNodeScope(jjtn000);
1085
/*@egen*/
1086
}
1087
{/*@bgen(jjtree) SQLPattern */
1088
  try {
1089
/*@egen*/
1090
  ( <STRING_LITERAL> 
1091
  | "?" 
1092
  | SQLLvalue()
1093
  )/*@bgen(jjtree)*/
1094
  } catch (Throwable jjte000) {
1095
    if (jjtc000) {
1096
      jjtree.clearNodeScope(jjtn000);
1097
      jjtc000 = false;
1098
    } else {
1099
      jjtree.popNode();
1100
    }
1101
    if (jjte000 instanceof RuntimeException) {
1102
      throw (RuntimeException)jjte000;
1103
    }
1104
    if (jjte000 instanceof ParseException) {
1105
      throw (ParseException)jjte000;
1106
    }
1107
    throw (Error)jjte000;
1108
  } finally {
1109
    if (jjtc000) {
1110
      jjtree.closeNodeScope(jjtn000, true);
1111
      jjtreeCloseNodeScope(jjtn000);
1112
    }
1113
  }
1114
/*@egen*/
1115
}
1116

    
1117
void SQLProductExpr() :
1118
{/*@bgen(jjtree) SQLProductExpr */
1119
  ASTSQLProductExpr jjtn000 = new ASTSQLProductExpr(JJTSQLPRODUCTEXPR);
1120
  boolean jjtc000 = true;
1121
  jjtree.openNodeScope(jjtn000);
1122
  jjtreeOpenNodeScope(jjtn000);
1123
/*@egen*/}
1124
{/*@bgen(jjtree) SQLProductExpr */
1125
  try {
1126
/*@egen*/
1127
  SQLUnaryExpr()
1128
  ( ( "*"
1129
    | "/"
1130
    ) SQLUnaryExpr())*/*@bgen(jjtree)*/
1131
  } catch (Throwable jjte000) {
1132
    if (jjtc000) {
1133
      jjtree.clearNodeScope(jjtn000);
1134
      jjtc000 = false;
1135
    } else {
1136
      jjtree.popNode();
1137
    }
1138
    if (jjte000 instanceof RuntimeException) {
1139
      throw (RuntimeException)jjte000;
1140
    }
1141
    if (jjte000 instanceof ParseException) {
1142
      throw (ParseException)jjte000;
1143
    }
1144
    throw (Error)jjte000;
1145
  } finally {
1146
    if (jjtc000) {
1147
      jjtree.closeNodeScope(jjtn000, true);
1148
      jjtreeCloseNodeScope(jjtn000);
1149
    }
1150
  }
1151
/*@egen*/
1152
}
1153

    
1154
void SQLRightJoinClause() :
1155
{/*@bgen(jjtree) SQLRightJoinClause */
1156
  ASTSQLRightJoinClause jjtn000 = new ASTSQLRightJoinClause(JJTSQLRIGHTJOINCLAUSE);
1157
  boolean jjtc000 = true;
1158
  jjtree.openNodeScope(jjtn000);
1159
  jjtreeOpenNodeScope(jjtn000);
1160
/*@egen*/
1161
}
1162
{/*@bgen(jjtree) SQLRightJoinClause */
1163
  try {
1164
/*@egen*/
1165
  SQLCompareOp()
1166
  SQLSumExpr()
1167
  "(+)"/*@bgen(jjtree)*/
1168
  } catch (Throwable jjte000) {
1169
    if (jjtc000) {
1170
      jjtree.clearNodeScope(jjtn000);
1171
      jjtc000 = false;
1172
    } else {
1173
      jjtree.popNode();
1174
    }
1175
    if (jjte000 instanceof RuntimeException) {
1176
      throw (RuntimeException)jjte000;
1177
    }
1178
    if (jjte000 instanceof ParseException) {
1179
      throw (ParseException)jjte000;
1180
    }
1181
    throw (Error)jjte000;
1182
  } finally {
1183
    if (jjtc000) {
1184
      jjtree.closeNodeScope(jjtn000, true);
1185
      jjtreeCloseNodeScope(jjtn000);
1186
    }
1187
  }
1188
/*@egen*/
1189
}
1190

    
1191
void SQLUnion() :
1192
{/*@bgen(jjtree) SQLUnion */
1193
  ASTSQLUnion jjtn000 = new ASTSQLUnion(JJTSQLUNION);
1194
  boolean jjtc000 = true;
1195
  jjtree.openNodeScope(jjtn000);
1196
  jjtreeOpenNodeScope(jjtn000);
1197
/*@egen*/}
1198
{/*@bgen(jjtree) SQLUnion */
1199
        try {
1200
/*@egen*/
1201
	(
1202
	SQLTableRef()
1203
	|
1204
	<OPENPAREN>
1205
	SQLSelect()
1206
	<CLOSEPAREN>
1207
	)
1208
	<UNION>
1209
	(
1210
	SQLTableRef()
1211
	|
1212
	<OPENPAREN>
1213
	SQLSelect()
1214
	<CLOSEPAREN>
1215
	)/*@bgen(jjtree)*/
1216
        } catch (Throwable jjte000) {
1217
          if (jjtc000) {
1218
            jjtree.clearNodeScope(jjtn000);
1219
            jjtc000 = false;
1220
          } else {
1221
            jjtree.popNode();
1222
          }
1223
          if (jjte000 instanceof RuntimeException) {
1224
            throw (RuntimeException)jjte000;
1225
          }
1226
          if (jjte000 instanceof ParseException) {
1227
            throw (ParseException)jjte000;
1228
          }
1229
          throw (Error)jjte000;
1230
        } finally {
1231
          if (jjtc000) {
1232
            jjtree.closeNodeScope(jjtn000, true);
1233
            jjtreeCloseNodeScope(jjtn000);
1234
          }
1235
        }
1236
/*@egen*/
1237
}
1238

    
1239
void SQLSelect() :
1240
{/*@bgen(jjtree) SQLSelect */
1241
  ASTSQLSelect jjtn000 = new ASTSQLSelect(JJTSQLSELECT);
1242
  boolean jjtc000 = true;
1243
  jjtree.openNodeScope(jjtn000);
1244
  jjtreeOpenNodeScope(jjtn000);
1245
/*@egen*/}
1246
{/*@bgen(jjtree) SQLSelect */
1247
  try {
1248
/*@egen*/
1249
  <SELECT>
1250
  SQLSelectCols()
1251
  [ <INTO>
1252
    SQLSelectCols()
1253
  ]
1254
  <FROM>
1255
  SQLTableList()
1256
  [ SQLWhere()]
1257
  [ SQLGroupBy()]
1258
  [ SQLOrderBy()]/*@bgen(jjtree)*/
1259
  } catch (Throwable jjte000) {
1260
    if (jjtc000) {
1261
      jjtree.clearNodeScope(jjtn000);
1262
      jjtc000 = false;
1263
    } else {
1264
      jjtree.popNode();
1265
    }
1266
    if (jjte000 instanceof RuntimeException) {
1267
      throw (RuntimeException)jjte000;
1268
    }
1269
    if (jjte000 instanceof ParseException) {
1270
      throw (ParseException)jjte000;
1271
    }
1272
    throw (Error)jjte000;
1273
  } finally {
1274
    if (jjtc000) {
1275
      jjtree.closeNodeScope(jjtn000, true);
1276
      jjtreeCloseNodeScope(jjtn000);
1277
    }
1278
  }
1279
/*@egen*/
1280
}
1281

    
1282
void SQLSelectCols() :
1283
{/*@bgen(jjtree) SQLSelectCols */
1284
  ASTSQLSelectCols jjtn000 = new ASTSQLSelectCols(JJTSQLSELECTCOLS);
1285
  boolean jjtc000 = true;
1286
  jjtree.openNodeScope(jjtn000);
1287
  jjtreeOpenNodeScope(jjtn000);
1288
/*@egen*/}
1289
{/*@bgen(jjtree) SQLSelectCols */
1290
  try {
1291
/*@egen*/
1292
  [ <ALL>
1293
  | <DISTINCT>
1294
  ] ( "*" | SQLSelectList())/*@bgen(jjtree)*/
1295
  } catch (Throwable jjte000) {
1296
    if (jjtc000) {
1297
      jjtree.clearNodeScope(jjtn000);
1298
      jjtc000 = false;
1299
    } else {
1300
      jjtree.popNode();
1301
    }
1302
    if (jjte000 instanceof RuntimeException) {
1303
      throw (RuntimeException)jjte000;
1304
    }
1305
    if (jjte000 instanceof ParseException) {
1306
      throw (ParseException)jjte000;
1307
    }
1308
    throw (Error)jjte000;
1309
  } finally {
1310
    if (jjtc000) {
1311
      jjtree.closeNodeScope(jjtn000, true);
1312
      jjtreeCloseNodeScope(jjtn000);
1313
    }
1314
  }
1315
/*@egen*/
1316
}
1317

    
1318
void SQLSelectList() :
1319
{/*@bgen(jjtree) SQLSelectList */
1320
  ASTSQLSelectList jjtn000 = new ASTSQLSelectList(JJTSQLSELECTLIST);
1321
  boolean jjtc000 = true;
1322
  jjtree.openNodeScope(jjtn000);
1323
  jjtreeOpenNodeScope(jjtn000);
1324
/*@egen*/}
1325
{/*@bgen(jjtree) SQLSelectList */
1326
  try {
1327
/*@egen*/
1328
  SQLSumExpr() [<AS> <ID>]
1329
  ( "," SQLSumExpr() [<AS> <ID>])*/*@bgen(jjtree)*/
1330
  } catch (Throwable jjte000) {
1331
    if (jjtc000) {
1332
      jjtree.clearNodeScope(jjtn000);
1333
      jjtc000 = false;
1334
    } else {
1335
      jjtree.popNode();
1336
    }
1337
    if (jjte000 instanceof RuntimeException) {
1338
      throw (RuntimeException)jjte000;
1339
    }
1340
    if (jjte000 instanceof ParseException) {
1341
      throw (ParseException)jjte000;
1342
    }
1343
    throw (Error)jjte000;
1344
  } finally {
1345
    if (jjtc000) {
1346
      jjtree.closeNodeScope(jjtn000, true);
1347
      jjtreeCloseNodeScope(jjtn000);
1348
    }
1349
  }
1350
/*@egen*/
1351
}
1352

    
1353
void SQLStatement() :
1354
{/*@bgen(jjtree) SQLStatement */
1355
  ASTSQLStatement jjtn000 = new ASTSQLStatement(JJTSQLSTATEMENT);
1356
  boolean jjtc000 = true;
1357
  jjtree.openNodeScope(jjtn000);
1358
  jjtreeOpenNodeScope(jjtn000);
1359
/*@egen*/}
1360
{/*@bgen(jjtree) SQLStatement */
1361
  try {
1362
/*@egen*/
1363
  ( 
1364
    SQLSelect() 
1365
  | SQLInsert()
1366
  | SQLUpdate()
1367
  | SQLDelete()
1368
  | SQLUnion()
1369
  | SQLCustom()
1370
  ) ";"/*@bgen(jjtree)*/
1371
  } catch (Throwable jjte000) {
1372
    if (jjtc000) {
1373
      jjtree.clearNodeScope(jjtn000);
1374
      jjtc000 = false;
1375
    } else {
1376
      jjtree.popNode();
1377
    }
1378
    if (jjte000 instanceof RuntimeException) {
1379
      throw (RuntimeException)jjte000;
1380
    }
1381
    if (jjte000 instanceof ParseException) {
1382
      throw (ParseException)jjte000;
1383
    }
1384
    throw (Error)jjte000;
1385
  } finally {
1386
    if (jjtc000) {
1387
      jjtree.closeNodeScope(jjtn000, true);
1388
      jjtreeCloseNodeScope(jjtn000);
1389
    }
1390
  }
1391
/*@egen*/
1392
}
1393

    
1394
void SQLSumExpr() :
1395
{/*@bgen(jjtree) SQLSumExpr */
1396
  ASTSQLSumExpr jjtn000 = new ASTSQLSumExpr(JJTSQLSUMEXPR);
1397
  boolean jjtc000 = true;
1398
  jjtree.openNodeScope(jjtn000);
1399
  jjtreeOpenNodeScope(jjtn000);
1400
/*@egen*/}
1401
{/*@bgen(jjtree) SQLSumExpr */
1402
    try {
1403
/*@egen*/
1404
    SQLProductExpr()
1405
     ( LOOKAHEAD(2) ( "+" 
1406
                    | "-" 
1407
                    | "||" 
1408
                    ) SQLProductExpr()  )*/*@bgen(jjtree)*/
1409
    } catch (Throwable jjte000) {
1410
      if (jjtc000) {
1411
        jjtree.clearNodeScope(jjtn000);
1412
        jjtc000 = false;
1413
      } else {
1414
        jjtree.popNode();
1415
      }
1416
      if (jjte000 instanceof RuntimeException) {
1417
        throw (RuntimeException)jjte000;
1418
      }
1419
      if (jjte000 instanceof ParseException) {
1420
        throw (ParseException)jjte000;
1421
      }
1422
      throw (Error)jjte000;
1423
    } finally {
1424
      if (jjtc000) {
1425
        jjtree.closeNodeScope(jjtn000, true);
1426
        jjtreeCloseNodeScope(jjtn000);
1427
      }
1428
    }
1429
/*@egen*/
1430
}
1431

    
1432
void SQLTableList() :
1433
{/*@bgen(jjtree) SQLTableList */
1434
  ASTSQLTableList jjtn000 = new ASTSQLTableList(JJTSQLTABLELIST);
1435
  boolean jjtc000 = true;
1436
  jjtree.openNodeScope(jjtn000);
1437
  jjtreeOpenNodeScope(jjtn000);
1438
/*@egen*/}
1439
{/*@bgen(jjtree) SQLTableList */
1440
  try {
1441
/*@egen*/
1442
  SQLTableRef()
1443
  ( LOOKAHEAD(2) "," SQLTableRef() )*/*@bgen(jjtree)*/
1444
  } catch (Throwable jjte000) {
1445
    if (jjtc000) {
1446
      jjtree.clearNodeScope(jjtn000);
1447
      jjtc000 = false;
1448
    } else {
1449
      jjtree.popNode();
1450
    }
1451
    if (jjte000 instanceof RuntimeException) {
1452
      throw (RuntimeException)jjte000;
1453
    }
1454
    if (jjte000 instanceof ParseException) {
1455
      throw (ParseException)jjte000;
1456
    }
1457
    throw (Error)jjte000;
1458
  } finally {
1459
    if (jjtc000) {
1460
      jjtree.closeNodeScope(jjtn000, true);
1461
      jjtreeCloseNodeScope(jjtn000);
1462
    }
1463
  }
1464
/*@egen*/
1465
}
1466

    
1467

    
1468
void SQLTableRef() :
1469
{/*@bgen(jjtree) SQLTableRef */
1470
  ASTSQLTableRef jjtn000 = new ASTSQLTableRef(JJTSQLTABLEREF);
1471
  boolean jjtc000 = true;
1472
  jjtree.openNodeScope(jjtn000);
1473
  jjtreeOpenNodeScope(jjtn000);
1474
/*@egen*/
1475
}
1476
{/*@bgen(jjtree) SQLTableRef */
1477
  try {
1478
/*@egen*/
1479
  (<ID>|<STRING_LITERAL>)
1480
  [ <ID>
1481
  ]/*@bgen(jjtree)*/
1482
  } finally {
1483
    if (jjtc000) {
1484
      jjtree.closeNodeScope(jjtn000, true);
1485
      jjtreeCloseNodeScope(jjtn000);
1486
    }
1487
  }
1488
/*@egen*/
1489
}
1490

    
1491
void SQLTerm() :
1492
{/*@bgen(jjtree) SQLTerm */
1493
  ASTSQLTerm jjtn000 = new ASTSQLTerm(JJTSQLTERM);
1494
  boolean jjtc000 = true;
1495
  jjtree.openNodeScope(jjtn000);
1496
  jjtreeOpenNodeScope(jjtn000);
1497
/*@egen*/
1498
}
1499
{/*@bgen(jjtree) SQLTerm */
1500
  try {
1501
/*@egen*/
1502
  (
1503
    "(" 
1504
    SQLOrExpr()
1505
    ")"
1506
  | SQLFunction()
1507
  | SQLColRef()
1508
  | SQLLiteral()
1509
  )/*@bgen(jjtree)*/
1510
  } catch (Throwable jjte000) {
1511
    if (jjtc000) {
1512
      jjtree.clearNodeScope(jjtn000);
1513
      jjtc000 = false;
1514
    } else {
1515
      jjtree.popNode();
1516
    }
1517
    if (jjte000 instanceof RuntimeException) {
1518
      throw (RuntimeException)jjte000;
1519
    }
1520
    if (jjte000 instanceof ParseException) {
1521
      throw (ParseException)jjte000;
1522
    }
1523
    throw (Error)jjte000;
1524
  } finally {
1525
    if (jjtc000) {
1526
      jjtree.closeNodeScope(jjtn000, true);
1527
      jjtreeCloseNodeScope(jjtn000);
1528
    }
1529
  }
1530
/*@egen*/
1531
}
1532

    
1533
void SQLUnaryExpr() :
1534
{/*@bgen(jjtree) SQLUnaryExpr */
1535
  ASTSQLUnaryExpr jjtn000 = new ASTSQLUnaryExpr(JJTSQLUNARYEXPR);
1536
  boolean jjtc000 = true;
1537
  jjtree.openNodeScope(jjtn000);
1538
  jjtreeOpenNodeScope(jjtn000);
1539
/*@egen*/}
1540
{/*@bgen(jjtree) SQLUnaryExpr */
1541
  try {
1542
/*@egen*/
1543
  [ ( "+" 
1544
    | "-" 
1545
    )
1546
  ] SQLTerm()/*@bgen(jjtree)*/
1547
  } catch (Throwable jjte000) {
1548
    if (jjtc000) {
1549
      jjtree.clearNodeScope(jjtn000);
1550
      jjtc000 = false;
1551
    } else {
1552
      jjtree.popNode();
1553
    }
1554
    if (jjte000 instanceof RuntimeException) {
1555
      throw (RuntimeException)jjte000;
1556
    }
1557
    if (jjte000 instanceof ParseException) {
1558
      throw (ParseException)jjte000;
1559
    }
1560
    throw (Error)jjte000;
1561
  } finally {
1562
    if (jjtc000) {
1563
      jjtree.closeNodeScope(jjtn000, true);
1564
      jjtreeCloseNodeScope(jjtn000);
1565
    }
1566
  }
1567
/*@egen*/
1568
}
1569

    
1570
void SQLUpdate() :
1571
{/*@bgen(jjtree) SQLUpdate */
1572
  ASTSQLUpdate jjtn000 = new ASTSQLUpdate(JJTSQLUPDATE);
1573
  boolean jjtc000 = true;
1574
  jjtree.openNodeScope(jjtn000);
1575
  jjtreeOpenNodeScope(jjtn000);
1576
/*@egen*/}
1577
{/*@bgen(jjtree) SQLUpdate */
1578
  try {
1579
/*@egen*/
1580
  <UPDATE>
1581
  SQLTableList()
1582
  <SET>
1583
  ( 
1584
    LOOKAHEAD(SQLLvalue() "=") SQLUpdateAssignment()
1585
    [
1586
      ","
1587
    ] 
1588
  )+
1589

    
1590
  [ SQLWhere() ]/*@bgen(jjtree)*/
1591
  } catch (Throwable jjte000) {
1592
    if (jjtc000) {
1593
      jjtree.clearNodeScope(jjtn000);
1594
      jjtc000 = false;
1595
    } else {
1596
      jjtree.popNode();
1597
    }
1598
    if (jjte000 instanceof RuntimeException) {
1599
      throw (RuntimeException)jjte000;
1600
    }
1601
    if (jjte000 instanceof ParseException) {
1602
      throw (ParseException)jjte000;
1603
    }
1604
    throw (Error)jjte000;
1605
  } finally {
1606
    if (jjtc000) {
1607
      jjtree.closeNodeScope(jjtn000, true);
1608
      jjtreeCloseNodeScope(jjtn000);
1609
    }
1610
  }
1611
/*@egen*/
1612
}
1613

    
1614
void SQLUpdateAssignment() :
1615
{/*@bgen(jjtree) SQLUpdateAssignment */
1616
  ASTSQLUpdateAssignment jjtn000 = new ASTSQLUpdateAssignment(JJTSQLUPDATEASSIGNMENT);
1617
  boolean jjtc000 = true;
1618
  jjtree.openNodeScope(jjtn000);
1619
  jjtreeOpenNodeScope(jjtn000);
1620
/*@egen*/}
1621
{/*@bgen(jjtree) SQLUpdateAssignment */
1622
  try {
1623
/*@egen*/
1624
  SQLLvalue() "="
1625
  (
1626
      LOOKAHEAD(SQLTerm() <CONCAT> ) 
1627
      SQLTerm() 
1628
      ( <CONCAT> 
1629
        SQLTerm() )+
1630
      | SQLSumExpr() )/*@bgen(jjtree)*/
1631
  } catch (Throwable jjte000) {
1632
    if (jjtc000) {
1633
      jjtree.clearNodeScope(jjtn000);
1634
      jjtc000 = false;
1635
    } else {
1636
      jjtree.popNode();
1637
    }
1638
    if (jjte000 instanceof RuntimeException) {
1639
      throw (RuntimeException)jjte000;
1640
    }
1641
    if (jjte000 instanceof ParseException) {
1642
      throw (ParseException)jjte000;
1643
    }
1644
    throw (Error)jjte000;
1645
  } finally {
1646
    if (jjtc000) {
1647
      jjtree.closeNodeScope(jjtn000, true);
1648
      jjtreeCloseNodeScope(jjtn000);
1649
    }
1650
  }
1651
/*@egen*/
1652
}
1653

    
1654
void SQLLValueElement() :
1655
{/*@bgen(jjtree) SQLLValueElement */
1656
  ASTSQLLValueElement jjtn000 = new ASTSQLLValueElement(JJTSQLLVALUEELEMENT);
1657
  boolean jjtc000 = true;
1658
  jjtree.openNodeScope(jjtn000);
1659
  jjtreeOpenNodeScope(jjtn000);
1660
/*@egen*/}
1661
{/*@bgen(jjtree) SQLLValueElement */
1662
  try {
1663
/*@egen*/
1664
  ( <NULL> 
1665
  | SQLSumExpr() 
1666
  | SQLSelect())/*@bgen(jjtree)*/
1667
  } catch (Throwable jjte000) {
1668
    if (jjtc000) {
1669
      jjtree.clearNodeScope(jjtn000);
1670
      jjtc000 = false;
1671
    } else {
1672
      jjtree.popNode();
1673
    }
1674
    if (jjte000 instanceof RuntimeException) {
1675
      throw (RuntimeException)jjte000;
1676
    }
1677
    if (jjte000 instanceof ParseException) {
1678
      throw (ParseException)jjte000;
1679
    }
1680
    throw (Error)jjte000;
1681
  } finally {
1682
    if (jjtc000) {
1683
      jjtree.closeNodeScope(jjtn000, true);
1684
      jjtreeCloseNodeScope(jjtn000);
1685
    }
1686
  }
1687
/*@egen*/ 
1688
}
1689

    
1690
void SQLLValueList() :
1691
{/*@bgen(jjtree) SQLLValueList */
1692
  ASTSQLLValueList jjtn000 = new ASTSQLLValueList(JJTSQLLVALUELIST);
1693
  boolean jjtc000 = true;
1694
  jjtree.openNodeScope(jjtn000);
1695
  jjtreeOpenNodeScope(jjtn000);
1696
/*@egen*/}
1697
{/*@bgen(jjtree) SQLLValueList */
1698
  try {
1699
/*@egen*/
1700
  SQLLValueElement() 
1701
  ( "," 
1702
    SQLLValueElement()
1703
  )*/*@bgen(jjtree)*/
1704
  } catch (Throwable jjte000) {
1705
    if (jjtc000) {
1706
      jjtree.clearNodeScope(jjtn000);
1707
      jjtc000 = false;
1708
    } else {
1709
      jjtree.popNode();
1710
    }
1711
    if (jjte000 instanceof RuntimeException) {
1712
      throw (RuntimeException)jjte000;
1713
    }
1714
    if (jjte000 instanceof ParseException) {
1715
      throw (ParseException)jjte000;
1716
    }
1717
    throw (Error)jjte000;
1718
  } finally {
1719
    if (jjtc000) {
1720
      jjtree.closeNodeScope(jjtn000, true);
1721
      jjtreeCloseNodeScope(jjtn000);
1722
    }
1723
  }
1724
/*@egen*/
1725
}
1726

    
1727
void SQLWhere() :
1728
{/*@bgen(jjtree) SQLWhere */
1729
  ASTSQLWhere jjtn000 = new ASTSQLWhere(JJTSQLWHERE);
1730
  boolean jjtc000 = true;
1731
  jjtree.openNodeScope(jjtn000);
1732
  jjtreeOpenNodeScope(jjtn000);
1733
/*@egen*/}
1734
{/*@bgen(jjtree) SQLWhere */
1735
  try {
1736
/*@egen*/
1737
  <WHERE> SQLOrExpr()/*@bgen(jjtree)*/
1738
  } catch (Throwable jjte000) {
1739
    if (jjtc000) {
1740
      jjtree.clearNodeScope(jjtn000);
1741
      jjtc000 = false;
1742
    } else {
1743
      jjtree.popNode();
1744
    }
1745
    if (jjte000 instanceof RuntimeException) {
1746
      throw (RuntimeException)jjte000;
1747
    }
1748
    if (jjte000 instanceof ParseException) {
1749
      throw (ParseException)jjte000;
1750
    }
1751
    throw (Error)jjte000;
1752
  } finally {
1753
    if (jjtc000) {
1754
      jjtree.closeNodeScope(jjtn000, true);
1755
      jjtreeCloseNodeScope(jjtn000);
1756
    }
1757
  }
1758
/*@egen*/
1759
}