KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > speedo > query > parser > SpeedoQL


1 /* Generated By:JJTree&JavaCC: Do not edit this line. SpeedoQL.java */
2 package org.objectweb.speedo.query.parser;
3
4
5 public class SpeedoQL/*@bgen(jjtree)*/implements SpeedoQLTreeConstants, SpeedoQLConstants {/*@bgen(jjtree)*/
6     protected JJTSpeedoQLState jjtree = new JJTSpeedoQLState();
7
8     public static void main(String JavaDoc args[]) throws ParseException {
9         SpeedoQL parser;
10         if (args.length == 0) {
11             System.out.println("SpeedoQL Parser : Reading from standard input . . .");
12             parser = new SpeedoQL(System.in);
13         } else if (args.length == 1) {
14             System.out.println("SpeedoQL Parser : Reading from file " + args[0] + " . . .");
15             try {
16                 parser = new SpeedoQL(new java.io.FileInputStream JavaDoc(args[0]));
17             } catch (java.io.FileNotFoundException JavaDoc e) {
18                 System.out.println("SpeedoQL Parser : File " + args[0] + " not found.");
19                 return;
20             }
21         } else {
22             System.out.println("SpeedoQL Parser : Usage is one of:");
23             System.out.println(" java org.objectweb.speedo.test.conform.query.SpeedoQL < inputfile");
24             System.out.println("OR");
25             System.out.println(" java org.objectweb.speedo.test.conform.query.SpeedoQL inputfile");
26             return;
27         }
28         try {
29             SimpleNode sn = parser.SpeedoQL();
30             sn.dump("");
31             System.out.println("SpeedoQL Parser : Java program parsed successfully.");
32         } catch (ParseException e) {
33             System.out.println("SpeedoQL Parser : Encountered errors during parse.");
34             e.printStackTrace();
35         }
36     }
37
38 /* **************************************
39    *********** GRAMMAR ******************
40    ************************************** */

41     final public SimpleNode SpeedoQL() throws ParseException {
42         /*@bgen(jjtree) SpeedoQL */
43         ASTSpeedoQL jjtn000 = new ASTSpeedoQL(JJTSPEEDOQL);
44         boolean jjtc000 = true;
45         jjtree.openNodeScope(jjtn000);
46         try {
47             SpeedoPrimary();
48             jj_consume_token(0);
49             jjtree.closeNodeScope(jjtn000, true);
50             jjtc000 = false;
51             {
52                 if (true) return jjtn000;
53             }
54         } catch (Throwable JavaDoc jjte000) {
55             if (jjtc000) {
56                 jjtree.clearNodeScope(jjtn000);
57                 jjtc000 = false;
58             } else {
59                 jjtree.popNode();
60             }
61             if (jjte000 instanceof RuntimeException JavaDoc) {
62                 {
63                     if (true) throw (RuntimeException JavaDoc) jjte000;
64                 }
65             }
66             if (jjte000 instanceof ParseException) {
67                 {
68                     if (true) throw (ParseException) jjte000;
69                 }
70             }
71             {
72                 if (true) throw (Error JavaDoc) jjte000;
73             }
74         } finally {
75             if (jjtc000) {
76                 jjtree.closeNodeScope(jjtn000, true);
77             }
78         }
79         throw new Error JavaDoc("Missing return statement in function");
80     }
81
82     final public void SpeedoPrimary() throws ParseException {
83         /*@bgen(jjtree) SpeedoPrimary */
84         ASTSpeedoPrimary jjtn000 = new ASTSpeedoPrimary(JJTSPEEDOPRIMARY);
85         boolean jjtc000 = true;
86         jjtree.openNodeScope(jjtn000);
87         try {
88             label_1:
89             while (true) {
90                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
91                 case NULL:
92                 case TRUE:
93                 case FALSE:
94                 case INTEGER_LITERAL:
95                 case FLOATING_POINT_LITERAL:
96                 case CHARACTER_LITERAL:
97                 case STRING_LITERAL:
98                 case IDENTIFIER:
99                 case 45:
100                     ;
101                     break;
102                 default:
103                     jj_la1[0] = jj_gen;
104                     break label_1;
105                 }
106                 Primary();
107             }
108         } catch (Throwable JavaDoc jjte000) {
109             if (jjtc000) {
110                 jjtree.clearNodeScope(jjtn000);
111                 jjtc000 = false;
112             } else {
113                 jjtree.popNode();
114             }
115             if (jjte000 instanceof RuntimeException JavaDoc) {
116                 {
117                     if (true) throw (RuntimeException JavaDoc) jjte000;
118                 }
119             }
120             if (jjte000 instanceof ParseException) {
121                 {
122                     if (true) throw (ParseException) jjte000;
123                 }
124             }
125             {
126                 if (true) throw (Error JavaDoc) jjte000;
127             }
128         } finally {
129             if (jjtc000) {
130                 jjtree.closeNodeScope(jjtn000, true);
131             }
132         }
133     }
134
135     final public void Primary() throws ParseException {
136         /*@bgen(jjtree) Primary */
137         ASTPrimary jjtn000 = new ASTPrimary(JJTPRIMARY);
138         boolean jjtc000 = true;
139         jjtree.openNodeScope(jjtn000);
140         Token t;
141         try {
142             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
143             case 45:
144                 jj_consume_token(45);
145                 Expression();
146                 jj_consume_token(46);
147                 label_2:
148                 while (true) {
149                     if (jj_2_1(2)) {
150                         ;
151                     } else {
152                         break label_2;
153                     }
154                     jj_consume_token(DOT);
155                     t = jj_consume_token(IDENTIFIER);
156                     jjtn000.value = jjtn000.value + "." + t.image;
157                     label_3:
158                     while (true) {
159                         if (jj_2_2(2)) {
160                             ;
161                         } else {
162                             break label_3;
163                         }
164                         jj_consume_token(DOT);
165                         t = jj_consume_token(IDENTIFIER);
166                         jjtn000.value = jjtn000.value +"." + t.image;
167                     }
168                     label_4:
169                     while (true) {
170                         if (jj_2_3(2)) {
171                             ;
172                         } else {
173                             break label_4;
174                         }
175                         ArgumentList();
176                     }
177                     label_5:
178                     while (true) {
179                         if (jj_2_4(2)) {
180                             ;
181                         } else {
182                             break label_5;
183                         }
184                         jj_consume_token(DOT);
185                         t = jj_consume_token(IDENTIFIER);
186                         jjtn000.value = jjtn000.value + "." + t.image;
187                     }
188                 }
189                 break;
190             case IDENTIFIER:
191                 QualifiedName();
192                 label_6:
193                 while (true) {
194                     switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
195                     case 45:
196                         ;
197                         break;
198                     default:
199                         jj_la1[1] = jj_gen;
200                         break label_6;
201                     }
202                     ArgumentList();
203                 }
204                 label_7:
205                 while (true) {
206                     if (jj_2_5(2)) {
207                         ;
208                     } else {
209                         break label_7;
210                     }
211                     jj_consume_token(DOT);
212                     t = jj_consume_token(IDENTIFIER);
213                     jjtn000.value = jjtn000.value + "." + t.image;
214                     label_8:
215                     while (true) {
216                         if (jj_2_6(2)) {
217                             ;
218                         } else {
219                             break label_8;
220                         }
221                         jj_consume_token(DOT);
222                         t = jj_consume_token(IDENTIFIER);
223                         jjtn000.value = jjtn000.value + "." + t.image;
224                     }
225                     label_9:
226                     while (true) {
227                         if (jj_2_7(2)) {
228                             ;
229                         } else {
230                             break label_9;
231                         }
232                         ArgumentList();
233                     }
234                     label_10:
235                     while (true) {
236                         if (jj_2_8(2)) {
237                             ;
238                         } else {
239                             break label_10;
240                         }
241                         jj_consume_token(DOT);
242                         t = jj_consume_token(IDENTIFIER);
243                         jjtn000.value = jjtn000.value + "." + t.image;
244                     }
245                 }
246                 break;
247             case NULL:
248             case TRUE:
249             case FALSE:
250             case INTEGER_LITERAL:
251             case FLOATING_POINT_LITERAL:
252             case CHARACTER_LITERAL:
253             case STRING_LITERAL:
254                 Literal();
255                 label_11:
256                 while (true) {
257                     switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
258                     case DOT:
259                         ;
260                         break;
261                     default:
262                         jj_la1[2] = jj_gen;
263                         break label_11;
264                     }
265                     jj_consume_token(DOT);
266                     t = jj_consume_token(IDENTIFIER);
267                     jjtn000.value = jjtn000.value + "." + t.image;
268                     label_12:
269                     while (true) {
270                         if (jj_2_9(2)) {
271                             ;
272                         } else {
273                             break label_12;
274                         }
275                         jj_consume_token(DOT);
276                         t = jj_consume_token(IDENTIFIER);
277                         jjtn000.value = jjtn000.value + "." + t.image;
278                     }
279                     label_13:
280                     while (true) {
281                         if (jj_2_10(2)) {
282                             ;
283                         } else {
284                             break label_13;
285                         }
286                         ArgumentList();
287                     }
288                     label_14:
289                     while (true) {
290                         if (jj_2_11(2)) {
291                             ;
292                         } else {
293                             break label_14;
294                         }
295                         jj_consume_token(DOT);
296                         t = jj_consume_token(IDENTIFIER);
297                         jjtn000.value = jjtn000.value + "." + t.image;
298                     }
299                 }
300                 break;
301             default:
302                 jj_la1[3] = jj_gen;
303                 jj_consume_token(-1);
304                 throw new ParseException();
305             }
306         } catch (Throwable JavaDoc jjte000) {
307             if (jjtc000) {
308                 jjtree.clearNodeScope(jjtn000);
309                 jjtc000 = false;
310             } else {
311                 jjtree.popNode();
312             }
313             if (jjte000 instanceof RuntimeException JavaDoc) {
314                 {
315                     if (true) throw (RuntimeException JavaDoc) jjte000;
316                 }
317             }
318             if (jjte000 instanceof ParseException) {
319                 {
320                     if (true) throw (ParseException) jjte000;
321                 }
322             }
323             {
324                 if (true) throw (Error JavaDoc) jjte000;
325             }
326         } finally {
327             if (jjtc000) {
328                 jjtree.closeNodeScope(jjtn000, true);
329             }
330         }
331     }
332
333 /* ***************** EXPRESSION ********************* */
334     final public void Expression() throws ParseException {
335         RelationalExpression();
336     }
337
338     final public void RelationalExpression() throws ParseException {
339         /*@bgen(jjtree) RelationalExpression */
340         ASTRelationalExpression jjtn000 = new ASTRelationalExpression(JJTRELATIONALEXPRESSION);
341         boolean jjtc000 = true;
342         jjtree.openNodeScope(jjtn000);
343         Token t;
344         try {
345             AdditiveExpression();
346             label_15:
347             while (true) {
348                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
349                 case LT:
350                 case GT:
351                 case LTE:
352                 case GTE:
353                 case EQ:
354                 case NEQ:
355                 case OR:
356                 case AND:
357                 case BITWISEOR:
358                 case BITWISEXOR:
359                 case BITWISEAND:
360                     ;
361                     break;
362                 default:
363                     jj_la1[4] = jj_gen;
364                     break label_15;
365                 }
366                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
367                 case OR:
368                     t = jj_consume_token(OR);
369                     break;
370                 case AND:
371                     t = jj_consume_token(AND);
372                     break;
373                 case BITWISEOR:
374                     t = jj_consume_token(BITWISEOR);
375                     break;
376                 case BITWISEXOR:
377                     t = jj_consume_token(BITWISEXOR);
378                     break;
379                 case BITWISEAND:
380                     t = jj_consume_token(BITWISEAND);
381                     break;
382                 case EQ:
383                     t = jj_consume_token(EQ);
384                     break;
385                 case NEQ:
386                     t = jj_consume_token(NEQ);
387                     break;
388                 case LT:
389                     t = jj_consume_token(LT);
390                     break;
391                 case GT:
392                     t = jj_consume_token(GT);
393                     break;
394                 case GTE:
395                     t = jj_consume_token(GTE);
396                     break;
397                 case LTE:
398                     t = jj_consume_token(LTE);
399                     break;
400                 default:
401                     jj_la1[5] = jj_gen;
402                     jj_consume_token(-1);
403                     throw new ParseException();
404                 }
405                 jjtn000.ops.add(new Integer JavaDoc(t.kind));
406                 AdditiveExpression();
407             }
408         } catch (Throwable JavaDoc jjte000) {
409             if (jjtc000) {
410                 jjtree.clearNodeScope(jjtn000);
411                 jjtc000 = false;
412             } else {
413                 jjtree.popNode();
414             }
415             if (jjte000 instanceof RuntimeException JavaDoc) {
416                 {
417                     if (true) throw (RuntimeException JavaDoc) jjte000;
418                 }
419             }
420             if (jjte000 instanceof ParseException) {
421                 {
422                     if (true) throw (ParseException) jjte000;
423                 }
424             }
425             {
426                 if (true) throw (Error JavaDoc) jjte000;
427             }
428         } finally {
429             if (jjtc000) {
430                 jjtree.closeNodeScope(jjtn000, true);
431             }
432         }
433     }
434
435     final public void AdditiveExpression() throws ParseException {
436         /*@bgen(jjtree) AdditiveExpression */
437         ASTAdditiveExpression jjtn000 = new ASTAdditiveExpression(JJTADDITIVEEXPRESSION);
438         boolean jjtc000 = true;
439         jjtree.openNodeScope(jjtn000);
440         Token t;
441         try {
442             UnaryExpression();
443             label_16:
444             while (true) {
445                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
446                 case PLUS:
447                 case MINUS:
448                 case MULT:
449                 case DIV:
450                     ;
451                     break;
452                 default:
453                     jj_la1[6] = jj_gen;
454                     break label_16;
455                 }
456                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
457                 case PLUS:
458                     t = jj_consume_token(PLUS);
459                     break;
460                 case MINUS:
461                     t = jj_consume_token(MINUS);
462                     break;
463                 case MULT:
464                     t = jj_consume_token(MULT);
465                     break;
466                 case DIV:
467                     t = jj_consume_token(DIV);
468                     break;
469                 default:
470                     jj_la1[7] = jj_gen;
471                     jj_consume_token(-1);
472                     throw new ParseException();
473                 }
474                 jjtn000.ops.add(new Integer JavaDoc(t.kind));
475                 UnaryExpression();
476             }
477         } catch (Throwable JavaDoc jjte000) {
478             if (jjtc000) {
479                 jjtree.clearNodeScope(jjtn000);
480                 jjtc000 = false;
481             } else {
482                 jjtree.popNode();
483             }
484             if (jjte000 instanceof RuntimeException JavaDoc) {
485                 {
486                     if (true) throw (RuntimeException JavaDoc) jjte000;
487                 }
488             }
489             if (jjte000 instanceof ParseException) {
490                 {
491                     if (true) throw (ParseException) jjte000;
492                 }
493             }
494             {
495                 if (true) throw (Error JavaDoc) jjte000;
496             }
497         } finally {
498             if (jjtc000) {
499                 jjtree.closeNodeScope(jjtn000, true);
500             }
501         }
502     }
503
504     final public void UnaryExpression() throws ParseException {
505         /*@bgen(jjtree) UnaryExpression */
506         ASTUnaryExpression jjtn000 = new ASTUnaryExpression(JJTUNARYEXPRESSION);
507         boolean jjtc000 = true;
508         jjtree.openNodeScope(jjtn000);
509         Token t;
510         try {
511             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
512             case PLUS:
513             case MINUS:
514                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
515                 case PLUS:
516                     t = jj_consume_token(PLUS);
517                     break;
518                 case MINUS:
519                     t = jj_consume_token(MINUS);
520                     break;
521                 default:
522                     jj_la1[8] = jj_gen;
523                     jj_consume_token(-1);
524                     throw new ParseException();
525                 }
526                 jjtn000.ops.add(new Integer JavaDoc(t.kind));
527                 UnaryExpression();
528                 break;
529             case BITWISECOMPL:
530             case NOT:
531                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
532                 case BITWISECOMPL:
533                     t = jj_consume_token(BITWISECOMPL);
534                     break;
535                 case NOT:
536                     t = jj_consume_token(NOT);
537                     break;
538                 default:
539                     jj_la1[9] = jj_gen;
540                     jj_consume_token(-1);
541                     throw new ParseException();
542                 }
543                 jjtn000.ops.add(new Integer JavaDoc(t.kind));
544                 UnaryExpression();
545                 break;
546             default:
547                 jj_la1[10] = jj_gen;
548                 if (jj_2_12(2147483647)) {
549                     CastExpression();
550                 } else if (jj_2_13(2147483647)) {
551                     PostfixExpression();
552                 } else {
553                     jj_consume_token(-1);
554                     throw new ParseException();
555                 }
556             }
557         } catch (Throwable JavaDoc jjte000) {
558             if (jjtc000) {
559                 jjtree.clearNodeScope(jjtn000);
560                 jjtc000 = false;
561             } else {
562                 jjtree.popNode();
563             }
564             if (jjte000 instanceof RuntimeException JavaDoc) {
565                 {
566                     if (true) throw (RuntimeException JavaDoc) jjte000;
567                 }
568             }
569             if (jjte000 instanceof ParseException) {
570                 {
571                     if (true) throw (ParseException) jjte000;
572                 }
573             }
574             {
575                 if (true) throw (Error JavaDoc) jjte000;
576             }
577         } finally {
578             if (jjtc000) {
579                 jjtree.closeNodeScope(jjtn000, true);
580             }
581         }
582     }
583
584     final public void PostfixExpression() throws ParseException {
585         if (jj_2_14(2147483647)) {
586             Primary();
587         } else if (jj_2_15(2147483647)) {
588             QualifiedName();
589         } else {
590             jj_consume_token(-1);
591             throw new ParseException();
592         }
593     }
594
595     final public void CastExpression() throws ParseException {
596         /*@bgen(jjtree) CastExpression */
597         ASTCastExpression jjtn000 = new ASTCastExpression(JJTCASTEXPRESSION);
598         boolean jjtc000 = true;
599         jjtree.openNodeScope(jjtn000);
600         try {
601             jj_consume_token(45);
602             Type();
603             jj_consume_token(46);
604             UnaryExpression();
605         } catch (Throwable JavaDoc jjte000) {
606             if (jjtc000) {
607                 jjtree.clearNodeScope(jjtn000);
608                 jjtc000 = false;
609             } else {
610                 jjtree.popNode();
611             }
612             if (jjte000 instanceof RuntimeException JavaDoc) {
613                 {
614                     if (true) throw (RuntimeException JavaDoc) jjte000;
615                 }
616             }
617             if (jjte000 instanceof ParseException) {
618                 {
619                     if (true) throw (ParseException) jjte000;
620                 }
621             }
622             {
623                 if (true) throw (Error JavaDoc) jjte000;
624             }
625         } finally {
626             if (jjtc000) {
627                 jjtree.closeNodeScope(jjtn000, true);
628             }
629         }
630     }
631
632     final public void ArgumentList() throws ParseException {
633         /*@bgen(jjtree) ArgumentList */
634         ASTArgumentList jjtn000 = new ASTArgumentList(JJTARGUMENTLIST);
635         boolean jjtc000 = true;
636         jjtree.openNodeScope(jjtn000);
637         try {
638             jj_consume_token(45);
639             label_17:
640             while (true) {
641                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
642                 case NULL:
643                 case TRUE:
644                 case FALSE:
645                 case PLUS:
646                 case MINUS:
647                 case BITWISECOMPL:
648                 case NOT:
649                 case INTEGER_LITERAL:
650                 case FLOATING_POINT_LITERAL:
651                 case CHARACTER_LITERAL:
652            &nb