KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > el > parser > ELParser


1 /* Generated By:JavaCC: Do not edit this line. ELParser.java */
2 package org.apache.commons.el.parser;
3
4 import org.apache.commons.el.*;
5 import java.util.ArrayList;
6 import java.util.List;
7
8 /**
9  * Generated EL parser.
10  *
11  * @author Nathan Abramson
12  * @author Shawn Bayern
13  */

14
15 public class ELParser implements ELParserConstants {
16
17   public static void main(String args[])
18        throws ParseException
19   {
20     ELParser parser = new ELParser (System.in);
21     parser.ExpressionString ();
22   }
23
24 /*****************************************
25  * GRAMMAR PRODUCTIONS *
26  *****************************************/

27
28 /**
29  *
30  * Returns a String if the expression string is a single String, an
31  * Expression if the expression string is a single Expression, an
32  * ExpressionString if it's a mixture of both.
33  **/

34   final public Object ExpressionString() throws ParseException {
35   Object ret = "";
36   List elems = null;
37   Object elem;
38     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
39     case NON_EXPRESSION_TEXT:
40       ret = AttrValueString();
41       break;
42     case START_EXPRESSION:
43       ret = AttrValueExpression();
44       break;
45     default:
46       jj_la1[0] = jj_gen;
47       jj_consume_token(-1);
48       throw new ParseException();
49     }
50     label_1:
51     while (true) {
52       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
53       case NON_EXPRESSION_TEXT:
54       case START_EXPRESSION:
55         ;
56         break;
57       default:
58         jj_la1[1] = jj_gen;
59         break label_1;
60       }
61       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
62       case NON_EXPRESSION_TEXT:
63         elem = AttrValueString();
64         break;
65       case START_EXPRESSION:
66         elem = AttrValueExpression();
67         break;
68       default:
69         jj_la1[2] = jj_gen;
70         jj_consume_token(-1);
71         throw new ParseException();
72       }
73        if (elems == null) {
74          elems = new ArrayList ();
75          elems.add (ret);
76        }
77        elems.add (elem);
78     }
79     if (elems != null) {
80       ret = new ExpressionString (elems.toArray ());
81     }
82     {if (true) return ret;}
83     throw new Error("Missing return statement in function");
84   }
85
86   final public String AttrValueString() throws ParseException {
87   Token t;
88     t = jj_consume_token(NON_EXPRESSION_TEXT);
89     {if (true) return t.image;}
90     throw new Error("Missing return statement in function");
91   }
92
93   final public Expression AttrValueExpression() throws ParseException {
94   Expression exp;
95     jj_consume_token(START_EXPRESSION);
96     exp = Expression();
97     jj_consume_token(END_EXPRESSION);
98      {if (true) return exp;}
99     throw new Error("Missing return statement in function");
100   }
101
102   final public Expression Expression() throws ParseException {
103   Expression ret;
104     if (jj_2_1(2147483647)) {
105       ret = ConditionalExpression();
106     } else {
107       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
108       case INTEGER_LITERAL:
109       case FLOATING_POINT_LITERAL:
110       case STRING_LITERAL:
111       case TRUE:
112       case FALSE:
113       case NULL:
114       case LPAREN:
115       case MINUS:
116       case NOT1:
117       case NOT2:
118       case EMPTY:
119       case IDENTIFIER:
120         ret = OrExpression();
121         break;
122       default:
123         jj_la1[3] = jj_gen;
124         jj_consume_token(-1);
125         throw new ParseException();
126       }
127     }
128     {if (true) return ret;}
129     throw new Error("Missing return statement in function");
130   }
131
132   final public Expression OrExpression() throws ParseException {
133   Expression startExpression;
134   BinaryOperator operator;
135   Expression expression;
136   List operators = null;
137   List expressions = null;
138     startExpression = AndExpression();
139     label_2:
140     while (true) {
141       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
142       case OR1:
143       case OR2:
144         ;
145         break;
146       default:
147         jj_la1[4] = jj_gen;
148         break label_2;
149       }
150       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
151       case OR1:
152         jj_consume_token(OR1);
153         break;
154       case OR2:
155         jj_consume_token(OR2);
156         break;
157       default:
158         jj_la1[5] = jj_gen;
159         jj_consume_token(-1);
160         throw new ParseException();
161       }
162                         operator = OrOperator.SINGLETON;
163       expression = AndExpression();
164         if (operators == null) {
165           operators = new ArrayList ();
166           expressions = new ArrayList ();
167         }
168         operators.add (operator);
169         expressions.add (expression);
170     }
171     if (operators != null) {
172       {if (true) return new BinaryOperatorExpression (startExpression,
173                                            operators,
174                                            expressions);}
175     }
176     else {
177       {if (true) return startExpression;}
178     }
179     throw new Error("Missing return statement in function");
180   }
181
182   final public Expression AndExpression() throws ParseException {
183   Expression startExpression;
184   BinaryOperator operator;
185   Expression expression;
186   List operators = null;
187   List expressions = null;
188     startExpression = EqualityExpression();
189     label_3:
190     while (true) {
191       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
192       case AND1:
193       case AND2:
194         ;
195         break;
196       default:
197         jj_la1[6] = jj_gen;
198         break label_3;
199       }
200       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
201       case AND1:
202         jj_consume_token(AND1);
203         break;
204       case AND2:
205         jj_consume_token(AND2);
206         break;
207       default:
208         jj_la1[7] = jj_gen;
209         jj_consume_token(-1);
210         throw new ParseException();
211       }
212                           operator = AndOperator.SINGLETON;
213       expression = EqualityExpression();
214         if (operators == null) {
215           operators = new ArrayList ();
216           expressions = new ArrayList ();
217         }
218         operators.add (operator);
219         expressions.add (expression);
220     }
221     if (operators != null) {
222       {if (true) return new BinaryOperatorExpression (startExpression,
223                                            operators,
224                                            expressions);}
225     }
226     else {
227       {if (true) return startExpression;}
228     }
229     throw new Error("Missing return statement in function");
230   }
231
232   final public Expression EqualityExpression() throws ParseException {
233   Expression startExpression;
234   BinaryOperator operator;
235   Expression expression;
236   List operators = null;
237   List expressions = null;
238     startExpression = RelationalExpression();
239     label_4:
240     while (true) {
241       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
242       case EQ1:
243       case EQ2:
244       case NE1:
245       case NE2:
246         ;
247         break;
248       default:
249         jj_la1[8] = jj_gen;
250         break label_4;
251       }
252       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
253       case EQ1:
254       case EQ2:
255         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
256         case EQ1:
257           jj_consume_token(EQ1);
258           break;
259         case EQ2:
260           jj_consume_token(EQ2);
261           break;
262         default:
263           jj_la1[9] = jj_gen;
264           jj_consume_token(-1);
265           throw new ParseException();
266         }
267                         operator = EqualsOperator.SINGLETON;
268         break;
269       case NE1:
270       case NE2:
271         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
272         case NE1:
273           jj_consume_token(NE1);
274           break;
275         case NE2:
276           jj_consume_token(NE2);
277           break;
278         default:
279           jj_la1[10] = jj_gen;
280           jj_consume_token(-1);
281           throw new ParseException();
282         }
283                           operator = NotEqualsOperator.SINGLETON;
284         break;
285       default:
286         jj_la1[11] = jj_gen;
287         jj_consume_token(-1);
288         throw new ParseException();
289       }
290       expression = RelationalExpression();
291         if (operators == null) {
292           operators = new ArrayList ();
293           expressions = new ArrayList ();
294         }
295         operators.add (operator);
296         expressions.add (expression);
297     }
298     if (operators != null) {
299       {if (true) return new BinaryOperatorExpression (startExpression,
300                                            operators,
301                                            expressions);}
302     }
303     else {
304       {if (true) return startExpression;}
305     }
306     throw new Error("Missing return statement in function");
307   }
308
309   final public Expression RelationalExpression() throws ParseException {
310   Expression startExpression;
311   BinaryOperator operator;
312   Expression expression;
313   List operators = null;
314   List expressions = null;
315     startExpression = AddExpression();
316     label_5:
317     while (true) {
318       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
319       case GT1:
320       case GT2:
321       case LT1:
322       case LT2:
323       case LE1:
324       case LE2:
325       case GE1:
326       case GE2:
327         ;
328         break;
329       default:
330         jj_la1[12] = jj_gen;
331         break label_5;
332       }
333       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
334       case LT1:
335       case LT2:
336         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
337         case LT1:
338           jj_consume_token(LT1);
339           break;
340         case LT2:
341           jj_consume_token(LT2);
342           break;
343         default:
344           jj_la1[13] = jj_gen;
345           jj_consume_token(-1);
346           throw new ParseException();
347         }
348                         operator = LessThanOperator.SINGLETON;
349         break;
350       case GT1:
351       case GT2:
352         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
353         case GT1:
354           jj_consume_token(GT1);
355           break;
356         case GT2:
357           jj_consume_token(GT2);
358           break;
359         default:
360           jj_la1[14] = jj_gen;
361           jj_consume_token(-1);
362           throw new ParseException();
363         }
364                           operator = GreaterThanOperator.SINGLETON;
365         break;
366       case GE1:
367       case GE2:
368         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
369         case GE1:
370           jj_consume_token(GE1);
371           break;
372         case GE2:
373           jj_consume_token(GE2);
374           break;
375         default:
376           jj_la1[15] = jj_gen;
377           jj_consume_token(-1);
378           throw new ParseException();
379         }
380                           operator = GreaterThanOrEqualsOperator.SINGLETON;
381         break;
382       case LE1:
383       case LE2:
384         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
385         case LE1:
386           jj_consume_token(LE1);
387           break;
388         case LE2:
389           jj_consume_token(LE2);
390           break;
391         default:
392           jj_la1[16] = jj_gen;
393           jj_consume_token(-1);
394           throw new ParseException();
395         }
396                           operator = LessThanOrEqualsOperator.SINGLETON;
397         break;
398       default:
399         jj_la1[17] = jj_gen;
400         jj_consume_token(-1);
401         throw new ParseException();
402       }
403       expression = AddExpression();
404         if (operators == null) {
405           operators = new ArrayList ();
406           expressions = new ArrayList ();
407         }
408         operators.add (operator);
409         expressions.add (expression);
410     }
411     if (operators != null) {
412       {if (true) return new BinaryOperatorExpression (startExpression,
413                                            operators,
414                                            expressions);}
415     }
416     else {
417       {if (true) return startExpression;}
418     }
419     throw new Error("Missing return statement in function");
420   }
421
422   final public Expression AddExpression() throws ParseException {
423   Expression startExpression;
424   BinaryOperator operator;
425   Expression expression;
426   List operators = null;
427   List expressions = null;
428     startExpression = MultiplyExpression();
429     label_6:
430     while (true) {
431       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
432       case PLUS:
433       case MINUS:
434         ;
435         break;
436       default:
437         jj_la1[18] = jj_gen;
438         break label_6;
439       }
440       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
441       case PLUS:
442         jj_consume_token(PLUS);
443                operator = PlusOperator.SINGLETON;
444         break;
445       case MINUS:
446         jj_consume_token(MINUS);
447                   operator = MinusOperator.SINGLETON;
448         break;
449       default:
450         jj_la1[19] = jj_gen;
451         jj_consume_token(-1);
452         throw new ParseException();
453       }
454       expression = MultiplyExpression();
455         if (operators == null) {
456           operators = new ArrayList ();
457           expressions = new ArrayList ();
458         }
459         operators.add (operator);
460         expressions.add (expression);
461     }
462     if (operators != null) {
463       {if (true) return new BinaryOperatorExpression (startExpression,
464                                            operators,
465                                            expressions);}
466     }
467     else {
468       {if (true) return startExpression;}
469     }
470     throw new Error("Missing return statement in function");
471   }
472
473   final public Expression MultiplyExpression() throws ParseException {
474   Expression startExpression;
475   BinaryOperator operator;
476   Expression expression;
477   List operators = null;
478   List expressions = null;
479     startExpression = UnaryExpression();
480     label_7:
481     while (true) {
482       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
483       case MULTIPLY:
484       case DIVIDE1:
485       case DIVIDE2:
486       case MODULUS1:
487       case MODULUS2:
488         ;
489         break;
490       default:
491         jj_la1[20] = jj_gen;
492         break label_7;
493       }
494       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
495       case MULTIPLY:
496         jj_consume_token(MULTIPLY);
497                    operator = MultiplyOperator.SINGLETON;
498         break;
499       case DIVIDE1:
500       case DIVIDE2:
501         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
502         case DIVIDE1:
503           jj_consume_token(DIVIDE1);
504           break;
505         case DIVIDE2:
506           jj_consume_token(DIVIDE2);
507           break;
508         default:
509           jj_la1[21] = jj_gen;
510           jj_consume_token(-1);
511           throw new ParseException();
512         }
513                                   operator = DivideOperator.SINGLETON;
514         break;
515       case MODULUS1:
516       case MODULUS2:
517         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
518         case MODULUS1:
519           jj_consume_token(MODULUS1);
520           break;
521         case MODULUS2:
522           jj_consume_token(MODULUS2);
523           break;
524         default:
525           jj_la1[22] = jj_gen;
526           jj_consume_token(-1);
527           throw new ParseException();
528         }
529                                     operator = ModulusOperator.SINGLETON;
530         break;
531       default:
532         jj_la1[23] = jj_gen;
533         jj_consume_token(-1);
534         throw new ParseException();
535       }
536       expression = UnaryExpression();
537         if (operators == null) {
538           operators = new ArrayList ();
539           expressions = new ArrayList ();
540         }
541         operators.add (operator);
542         expressions.add (expression);
543     }
544     if (operators != null) {
545       {if (true) return new BinaryOperatorExpression (startExpression,
546                                            operators,
547                                            expressions);}
548     }
549     else {
550       {if (true) return startExpression;}
551     }
552     throw new Error("Missing return statement in function");
553   }
554
555   final public Expression ConditionalExpression() throws ParseException {
556  Expression condition, trueBranch, falseBranch;
557     condition = OrExpression();
558     jj_consume_token(COND);
559     trueBranch = Expression();
560     jj_consume_token(COLON);
561     falseBranch = Expression();
562   {if (true) return new ConditionalExpression(condition, trueBranch, falseBranch);}
563     throw new Error("Missing return statement in function");
564   }
565
566   final public Expression UnaryExpression() throws ParseException {
567   Expression expression;
568   UnaryOperator singleOperator = null;
569   UnaryOperator operator;
570   List operators = null;
571     label_8:
572     while (true) {
573       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
574       case MINUS:
575       case NOT1:
576       case NOT2:
577       case EMPTY:
578         ;
579         break;
580       default:
581         jj_la1[24] = jj_gen;
582         break label_8;
583       }
584       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
585       case NOT1:
586       case NOT2:
587         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
588         case NOT1:
589           jj_consume_token(NOT1);
590           break;
591         case NOT2:
592           jj_consume_token(NOT2);
593           break;
594         default:
595           jj_la1[25] = jj_gen;
596           jj_consume_token(-1);
597           throw new ParseException();
598         }
599                         operator = NotOperator.SINGLETON;
600         break;
601       case MINUS:
602         jj_consume_token(MINUS);
603                 operator = UnaryMinusOperator.SINGLETON;
604         break;
605       case EMPTY:
606         jj_consume_token(EMPTY);
607                 operator = EmptyOperator.SINGLETON;
608         break;
609       default:
610         jj_la1[26] = jj_gen;
611         jj_consume_token(-1);
612         throw new ParseException();
613       }
614      if (singleOperator == null) {
615       singleOperator = operator;
616      }
617      else if (operators == null) {
618       operators = new ArrayList ();
619       operators.add (singleOperator);
620       operators.add (operator);
621      }
622      else {
623       operators.add (operator);
624      }
625     }
626     expression = Value();
627     if (operators != null) {
628       {if (true) return new UnaryOperatorExpression (null, operators, expression);}
629     }
630     else if (singleOperator != null) {
631       {if (true) return new UnaryOperatorExpression (singleOperator, null, expression);}
632     }
633     else {
634       {if (true) return expression;}
635     }
636     throw new Error("Missing return statement in function");
637   }
638
639   final public Expression Value() throws ParseException {
640   Expression prefix;
641   ValueSuffix suffix;
642   List suffixes = null;
643     prefix = ValuePrefix();
644     label_9:
645     while (true) {
646       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
647       case DOT:
648       case LBRACKET:
649         ;
650         break;
651       default:
652         jj_la1[27] = jj_gen;
653         break label_9;
654       }
655       suffix = ValueSuffix();
656         if (suffixes == null) {
657           suffixes = new ArrayList ();
658         }
659         suffixes.add (suffix);
660     }
661     if (suffixes == null) {
662       {if (true) return prefix;}
663     }
664     else {
665       {if (true) return new ComplexValue (prefix, suffixes);}
666     }
667     throw new Error("Missing return statement in function");
668   }
669
670 /**
671  * This is an element that can start a value
672  **/

673   final public Expression ValuePrefix() throws ParseException {
674   Expression ret;
675     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
676     case INTEGER_LITERAL:
677     case FLOATING_POINT_LITERAL:
678     case STRING_LITERAL:
679     case TRUE:
680     case FALSE:
681     case NULL:
682       ret = Literal();
683       break;
684     case LPAREN:
685       jj_consume_token(LPAREN);
686       ret = Expression();
687       jj_consume_token(RPAREN);
688       break;
689     default:
690       jj_la1[28] = jj_gen;
691       if (jj_2_2(2147483647)) {
692         ret = FunctionInvocation();
693       } else {
694         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
695         case IDENTIFIER:
696           ret = NamedValue();
697           break;
698         default:
699           jj_la1[29] = jj_gen;
700           jj_consume_token(-1);
701           throw new ParseException();
702         }
703       }
704     }
705       {if (true) return ret;}
706     throw new Error("Missing return statement in function");
707   }
708
709   final public NamedValue NamedValue() throws ParseException {
710   Token t;
711     t = jj_consume_token(IDENTIFIER);
712                      {if (true) return new NamedValue (t.image);}
713     throw new Error("Missing return statement in function");
714   }
715
716   final public FunctionInvocation FunctionInvocation() throws ParseException {
717   String qualifiedName;
718   List argumentList = new ArrayList();
719   Expression exp;
720     qualifiedName = QualifiedName();
721     jj_consume_token(LPAREN);
722     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
723     case INTEGER_LITERAL:
724     case FLOATING_POINT_LITERAL:
725     case STRING_LITERAL:
726     case TRUE:
727     case FALSE:
728     case NULL:
729     case LPAREN:
730     case MINUS:
731     case NOT1:
732     case NOT2:
733     case EMPTY:
734     case IDENTIFIER:
735       exp = Expression();
736           argumentList.add(exp);
737       label_10:
738       while (true) {
739         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
740         case COMMA:
741           ;
742           break;
743         default:
744           jj_la1[30] = jj_gen;
745           break label_10;
746         }
747         jj_consume_token(COMMA);
748         exp = Expression();
749           argumentList.add(exp);
750       }
751       break;
752     default:
753       jj_la1[31] = jj_gen;
754       ;
755     }
756     jj_consume_token(RPAREN);
757     {if (true) return new FunctionInvocation(qualifiedName, argumentList);}
758     throw new Error("Missing return statement in function");
759   }
760
761   final public ValueSuffix ValueSuffix() throws ParseException {
762   ValueSuffix suffix;
763     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
764     case DOT:
765       suffix = PropertySuffix();
766       break;
767     case LBRACKET:
768       suffix = ArraySuffix();
769       break;
770     default:
771       jj_la1[32] = jj_gen;
772       jj_consume_token(-1);
773       throw new ParseException();
774     }
775       {if (true) return suffix;}
776     throw new Error("Missing return statement in function");
777   }
778
779   final public PropertySuffix PropertySuffix() throws ParseException {
780   Token t;
781   String property;
782     jj_consume_token(DOT);
783     property = Identifier();
784       {if (true) return new PropertySuffix (property);}
785     throw new Error("Missing return statement in function");
786   }
787
788   final public ArraySuffix ArraySuffix() throws ParseException {
789   Expression index;
790     jj_consume_token(LBRACKET);
791     index = Expression();
792     jj_consume_token(RBRACKET);
793      {if (true) return new ArraySuffix (index);}
794     throw new Error("Missing return statement in function");
795   }
796
797   final public Literal Literal() throws ParseException {
798   Literal ret;
799     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
800     case TRUE:
801     case FALSE:
802       ret = BooleanLiteral();
803       break;
804     case INTEGER_LITERAL:
805       ret = IntegerLiteral();
806       break;
807     case FLOATING_POINT_LITERAL:
808       ret = FloatingPointLiteral();
809       break;
810     case STRING_LITERAL:
811       ret = StringLiteral();
812       break;
813     case NULL:
814       ret = NullLiteral();
815       break;
816     default:
817       jj_la1[33] = jj_gen;
818       jj_consume_token(-1);
819       throw new ParseException();
820     }
821       {if (true) return ret;}
822     throw new Error("Missing return statement in function");
823   }
824
825   final public BooleanLiteral BooleanLiteral() throws ParseException {
826     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
827     case TRUE:
828       jj_consume_token(TRUE);
829            {if (true) return BooleanLiteral.TRUE;}
830       break;
831     case FALSE:
832       jj_consume_token(FALSE);
833               {if (true) return BooleanLiteral.FALSE;}
834       break;
835     default:
836       jj_la1[34] = jj_gen;
837       jj_consume_token(-1);
838       throw new ParseException();
839     }
840     throw new Error("Missing return statement in function");
841   }
842
843   final public StringLiteral StringLiteral() throws ParseException {
844   Token t;
845     t = jj_consume_token(STRING_LITERAL);
846     {if (true) return StringLiteral.fromToken (t.image);}
847     throw new Error("Missing return statement in function");
848   }
849
850   final public IntegerLiteral IntegerLiteral() throws ParseException {
851   Token t;
852     t = jj_consume_token(INTEGER_LITERAL);
853     {if (true) return new IntegerLiteral (t.image);}
854     throw new Error("Missing return statement in function");
855   }
856
857   final public FloatingPointLiteral FloatingPointLiteral() throws ParseException {
858   Token t;
859     t = jj_consume_token(FLOATING_POINT_LITERAL);
860     {if (true) return new FloatingPointLiteral (t.image);}
861     throw new Error("Missing return statement in function");
862   }
863
864   final public NullLiteral NullLiteral() throws ParseException {
865     jj_consume_token(NULL);
866       {if (true) return NullLiteral.SINGLETON;}
867     throw new Error("Missing return statement in function");
868   }
869
870   final public String Identifier() throws ParseException {
871   Token t;
872     t = jj_consume_token(IDENTIFIER);
873       {if (true) return t.image;}
874     throw new Error("Missing return statement in function");
875   }
876
877   final public String QualifiedName() throws ParseException {
878   String prefix = null, localPart = null;
879     if (jj_2_3(2147483647)) {
880       prefix = Identifier();
881       jj_consume_token(COLON);
882     } else {
883       ;
884     }
885     localPart = Identifier();
886     if (prefix == null)
887       {if (true) return localPart;}
888     else
889      {if (true) return prefix + ":" + localPart;}
890     throw new Error("Missing return statement in function");
891   }
892
893   final private boolean jj_2_1(int xla) {
894     jj_la = xla; jj_lastpos = jj_scanpos = token;
895     boolean retval = !jj_3_1();
896     jj_save(0, xla);
897     return retval;
898   }
899
900   final private boolean jj_2_2(int xla) {
901     jj_la = xla; jj_lastpos = jj_scanpos = token;
902     boolean retval = !jj_3_2();
903     jj_save(1, xla);
904     return retval;
905   }
906
907   final private boolean jj_2_3(int xla) {
908     jj_la = xla; jj_lastpos = jj_scanpos = token;
909     boolean retval = !jj_3_3();
910     jj_save(2, xla);
911     return retval;
912   }
913
914   final private boolean jj_3R_42() {
915     if (jj_scan_token(NE2)) return true;
916     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
917     return false;
918   }
919
920   final private boolean jj_3R_91() {
921     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
922     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
923     return false;
924   }
925
926   final private boolean jj_3R_40() {
927     if (jj_scan_token(EQ2)) return true;
928     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
929     return false;
930   }
931
932   final private boolean jj_3R_41() {
933     if (jj_scan_token(NE1)) return true;
934     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
935     return false;
936   }
937
938   final private boolean jj_3R_32() {
939     Token xsp;
940     xsp = jj_scanpos;
941     if (jj_3R_41()) {
942     jj_scanpos = xsp;
943     if (jj_3R_42()) return true;
944     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
945     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
946     return false;
947   }
948
949   final private boolean jj_3R_90() {
950     if (jj_scan_token(INTEGER_LITERAL)) return true;
951     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
952     return false;
953   }
954
955   final private boolean jj_3R_39() {
956     if (jj_scan_token(EQ1)) return true;
957     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
958     return false;
959   }
960
961   final private boolean jj_3R_31() {
962     Token xsp;
963     xsp = jj_scanpos;
964     if (jj_3R_39()) {
965     jj_scanpos = xsp;
966     if (jj_3R_40()) return true;
967     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
968     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
969     return false;
970   }
971
972   final private boolean jj_3R_26() {
973     Token xsp;
974     xsp = jj_scanpos;
975     if (jj_3R_31()) {
976     jj_scanpos = xsp;
977     if (jj_3R_32()) return true;
978     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
979     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
980     if (jj_3R_25()) return true;
981     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
982     return false;
983   }
984
985   final private boolean jj_3R_70() {
986     if (jj_scan_token(NOT2)) return true;
987     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
988     return false;
989   }
990
991   final private boolean jj_3R_21() {
992     if (jj_3R_25()) return true;
993     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
994     Token xsp;
995     while (true) {
996       xsp = jj_scanpos;
997       if (jj_3R_26()) { jj_scanpos = xsp; break; }
998       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
999     }
1000    return false;
1001  }
1002
1003  final private boolean jj_3R_92() {
1004    if (jj_scan_token(STRING_LITERAL)) return true;
1005    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1006    return false;
1007  }
1008
1009  final private boolean jj_3R_62() {
1010    if (jj_scan_token(EMPTY)) return true;
1011    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1012    return false;
1013  }
1014
1015  final private boolean jj_3R_61() {
1016    if (jj_scan_token(MINUS)) return true;
1017    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1018    return false;
1019  }
1020
1021  final private boolean jj_3R_69() {
1022    if (jj_scan_token(NOT1)) return true;
1023    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1024    return false;
1025  }
1026
1027  final private boolean jj_3R_60() {
1028    Token xsp;
1029    xsp = jj_scanpos;
1030    if (jj_3R_69()) {
1031    jj_scanpos = xsp;
1032    if (jj_3R_70()) return true;
1033    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1034    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1035    return false;
1036  }
1037
1038  final private boolean jj_3R_55() {
1039    Token xsp;
1040    xsp = jj_scanpos;
1041    if (jj_3R_60()) {
1042    jj_scanpos = xsp;
1043    if (jj_3R_61()) {
1044    jj_scanpos = xsp;
1045    if (jj_3R_62()) return true;
1046    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1047    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1048    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1049    return false;
1050  }
1051
1052  final private boolean jj_3R_96() {
1053    if (jj_scan_token(FALSE)) return true;
1054    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1055    return false;
1056  }
1057
1058  final private boolean jj_3R_43() {
1059    Token xsp;
1060    while (true) {
1061      xsp = jj_scanpos;
1062      if (jj_3R_55()) { jj_scanpos = xsp; break; }
1063      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1064    }
1065    if (jj_3R_56()) return true;
1066    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1067    return false;
1068  }
1069
1070  final private boolean jj_3R_95() {
1071    if (jj_scan_token(TRUE)) return true;
1072    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1073    return false;
1074  }
1075
1076  final private boolean jj_3R_89() {
1077    Token xsp;
1078    xsp = jj_scanpos;
1079    if (jj_3R_95()) {
1080    jj_scanpos = xsp;
1081    if (jj_3R_96()) return true;
1082    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1083    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1084    return false;
1085  }
1086
1087  final private boolean jj_3R_85() {
1088    if (jj_3R_93()) return true;
1089    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1090    return false;
1091  }
1092
1093  final private boolean jj_3R_84() {
1094    if (jj_3R_92()) return true;
1095    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1096    return false;
1097  }
1098
1099  final private boolean jj_3R_83() {
1100    if (jj_3R_91()) return true;
1101    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1102    return false;
1103  }
1104
1105  final private boolean jj_3R_82() {
1106    if (jj_3R_90()) return true;
1107    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1108    return false;
1109  }
1110
1111  final private boolean jj_3R_28() {
1112    if (jj_scan_token(AND2)) return true;
1113    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1114    return false;
1115  }
1116
1117  final private boolean jj_3R_81() {
1118    if (jj_3R_89()) return true;
1119    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1120    return false;
1121  }
1122
1123  final private boolean jj_3R_76() {
1124    Token xsp;
1125    xsp = jj_scanpos;
1126    if (jj_3R_81()) {
1127    jj_scanpos = xsp;
1128    if (jj_3R_82()) {
1129    jj_scanpos = xsp;
1130    if (jj_3R_83()) {
1131    jj_scanpos = xsp;
1132    if (jj_3R_84()) {
1133    jj_scanpos = xsp;
1134    if (jj_3R_85()) return true;
1135    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1136    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1137    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1138    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1139    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1140    return false;
1141  }
1142
1143  final private boolean jj_3R_11() {
1144    if (jj_3R_14()) return true;
1145    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1146    if (jj_scan_token(COND)) return true;
1147    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1148    if (jj_3R_15()) return true;
1149    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1150    if (jj_scan_token(COLON)) return true;
1151    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1152    if (jj_3R_15()) return true;
1153    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1154    return false;
1155  }
1156
1157  final private boolean jj_3R_27() {
1158    if (jj_scan_token(AND1)) return true;
1159    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1160    return false;
1161  }
1162
1163  final private boolean jj_3R_22() {
1164    Token xsp;
1165    xsp = jj_scanpos;
1166    if (jj_3R_27()) {
1167    jj_scanpos = xsp;
1168    if (jj_3R_28()) return true;
1169    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1170    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1171    if (jj_3R_21()) return true;
1172    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1173    return false;
1174  }
1175
1176  final private boolean jj_3R_17() {
1177    if (jj_3R_21()) return true;
1178    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1179    Token xsp;
1180    while (true) {
1181      xsp = jj_scanpos;
1182      if (jj_3R_22()) { jj_scanpos = xsp; break; }
1183      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1184    }
1185    return false;
1186  }
1187
1188  final private boolean jj_3R_68() {
1189    if (jj_scan_token(MODULUS2)) return true;
1190    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1191    return false;
1192  }
1193
1194  final private boolean jj_3R_88() {
1195    if (jj_scan_token(LBRACKET)) return true;
1196    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1197    if (jj_3R_15()) return true;
1198    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1199    if (jj_scan_token(RBRACKET)) return true;
1200    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1201    return false;
1202  }
1203
1204  final private boolean jj_3R_66() {
1205    if (jj_scan_token(DIVIDE2)) return true;
1206    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1207    return false;
1208  }
1209
1210  final private boolean jj_3R_67() {
1211    if (jj_scan_token(MODULUS1)) return true;
1212    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1213    return false;
1214  }
1215
1216  final private boolean jj_3R_59() {
1217    Token xsp;
1218    xsp = jj_scanpos;
1219    if (jj_3R_67()) {
1220    jj_scanpos = xsp;
1221    if (jj_3R_68()) return true;
1222    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1223    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1224    return false;
1225  }
1226
1227  final private boolean jj_3R_65() {
1228    if (jj_scan_token(DIVIDE1)) return true;
1229    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1230    return false;
1231  }
1232
1233  final private boolean jj_3R_87() {
1234    if (jj_scan_token(DOT)) return true;
1235    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1236    if (jj_3R_13()) return true;
1237    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1238    return false;
1239  }
1240
1241  final private boolean jj_3R_58() {
1242    Token xsp;
1243    xsp = jj_scanpos;
1244    if (jj_3R_65()) {
1245    jj_scanpos = xsp;
1246    if (jj_3R_66()) return true;
1247    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1248    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1249    return false;
1250  }
1251
1252  final private boolean jj_3R_57() {
1253    if (jj_scan_token(MULTIPLY)) return true;
1254    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1255    return false;
1256  }
1257
1258  final private boolean jj_3R_44() {
1259    Token xsp;
1260    xsp = jj_scanpos;
1261    if (jj_3R_57()) {
1262    jj_scanpos = xsp;
1263    if (jj_3R_58()) {
1264    jj_scanpos = xsp;
1265    if (jj_3R_59()) return true;
1266    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1267    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1268    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1269    if (jj_3R_43()) return true;
1270    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1271    return false;
1272  }
1273
1274  final private boolean jj_3R_24() {
1275    if (jj_scan_token(OR2)) return true;
1276    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1277    return false;
1278  }
1279
1280  final private boolean jj_3R_80() {
1281    if (jj_3R_88()) return true;
1282    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1283    return false;
1284  }
1285
1286  final private boolean jj_3R_33() {
1287    if (jj_3R_43()) return true;
1288    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1289    Token xsp;
1290    while (true) {
1291      xsp = jj_scanpos;
1292      if (jj_3R_44()) { jj_scanpos = xsp; break; }
1293      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1294    }
1295    return false;
1296  }
1297
1298  final private boolean jj_3R_79() {
1299    if (jj_3R_87()) return true;
1300    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1301    return false;
1302  }
1303
1304  final private boolean jj_3R_75() {
1305    Token xsp;
1306    xsp = jj_scanpos;
1307    if (jj_3R_79()) {
1308    jj_scanpos = xsp;
1309    if (jj_3R_80()) return true;
1310    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1311    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1312    return false;
1313  }
1314
1315  final private boolean jj_3R_23() {
1316    if (jj_scan_token(OR1)) return true;
1317    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1318    return false;
1319  }
1320
1321  final private boolean jj_3R_18() {
1322    Token xsp;
1323    xsp = jj_scanpos;
1324    if (jj_3R_23()) {
1325    jj_scanpos = xsp;
1326    if (jj_3R_24()) return true;
1327    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1328    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1329    if (jj_3R_17()) return true;
1330    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1331    return false;
1332  }
1333
1334  final private boolean jj_3R_14() {
1335    if (jj_3R_17()) return true;
1336    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1337    Token xsp;
1338    while (true) {
1339      xsp = jj_scanpos;
1340      if (jj_3R_18()) { jj_scanpos = xsp; break; }
1341      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1342    }
1343    return false;
1344  }
1345
1346  final private boolean jj_3R_94() {
1347    if (jj_scan_token(COMMA)) return true;
1348    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1349    if (jj_3R_15()) return true;
1350    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1351    return false;
1352  }
1353
1354  final private boolean jj_3_1() {
1355    if (jj_3R_11()) return true;
1356    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1357    return false;
1358  }
1359
1360  final private boolean jj_3R_86() {
1361    if (jj_3R_15()) return true;
1362    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1363    Token xsp;
1364    while (true) {
1365      xsp = jj_scanpos;
1366      if (jj_3R_94()) { jj_scanpos = xsp; break; }
1367      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1368    }
1369    return false;
1370  }
1371
1372  final private boolean jj_3R_20() {
1373    if (jj_3R_14()) return true;
1374    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1375    return false;
1376  }
1377
1378  final private boolean jj_3R_19() {
1379    if (jj_3R_11()) return true;
1380    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1381    return false;
1382  }
1383
1384  final private boolean jj_3R_46() {
1385    if (jj_scan_token(MINUS)) return true;
1386    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1387    return false;
1388  }
1389
1390  final private boolean jj_3R_15() {
1391    Token xsp;
1392    xsp = jj_scanpos;
1393    if (jj_3R_19()) {
1394    jj_scanpos = xsp;
1395    if (jj_3R_20()) return true;
1396    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1397    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1398    return false;
1399  }
1400
1401  final private boolean jj_3R_45() {
1402    if (jj_scan_token(PLUS)) return true;
1403    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1404    return false;
1405  }
1406
1407  final private boolean jj_3R_34() {
1408    Token xsp;
1409    xsp = jj_scanpos;
1410    if (jj_3R_45()) {
1411    jj_scanpos = xsp;
1412    if (jj_3R_46()) return true;
1413    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1414    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1415    if (jj_3R_33()) return true;
1416    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1417    return false;
1418  }
1419
1420  final private boolean jj_3R_77() {
1421    if (jj_3R_12()) return true;
1422    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1423    if (jj_scan_token(LPAREN)) return true;
1424    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1425    Token xsp;
1426    xsp = jj_scanpos;
1427    if (jj_3R_86()) jj_scanpos = xsp;
1428    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1429    if (jj_scan_token(RPAREN)) return true;
1430    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1431    return false;
1432  }
1433
1434  final private boolean jj_3R_29() {
1435    if (jj_3R_33()) return true;
1436    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1437    Token xsp;
1438    while (true) {
1439      xsp = jj_scanpos;
1440      if (jj_3R_34()) { jj_scanpos = xsp; break; }
1441      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1442    }
1443    return false;
1444  }
1445
1446  final private boolean jj_3_2() {
1447    if (jj_3R_12()) return true;
1448    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1449    if (jj_scan_token(LPAREN)) return true;
1450    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1451    return false;
1452  }
1453
1454  final private boolean jj_3R_78() {
1455    if (jj_scan_token(IDENTIFIER)) return true;
1456    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1457    return false;
1458  }
1459
1460  final private boolean jj_3R_74() {
1461    if (jj_3R_78()) return true;
1462    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1463    return false;
1464  }
1465
1466  final private boolean jj_3R_73() {
1467    if (jj_3R_77()) return true;
1468    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1469    return false;
1470  }
1471
1472  final private boolean jj_3R_72() {
1473    if (jj_scan_token(LPAREN)) return true;
1474    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1475    if (jj_3R_15()) return true;
1476    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1477    if (jj_scan_token(RPAREN)) return true;
1478    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1479    return false;
1480  }
1481
1482  final private boolean jj_3R_71() {
1483    if (jj_3R_76()) return true;
1484    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1485    return false;
1486  }
1487
1488  final private boolean jj_3_3() {
1489    if (jj_3R_13()) return true;
1490    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1491    if (jj_scan_token(COLON)) return true;
1492    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1493    return false;
1494  }
1495
1496  final private boolean jj_3R_63() {
1497    Token xsp;
1498    xsp = jj_scanpos;
1499    if (jj_3R_71()) {
1500    jj_scanpos = xsp;
1501    if (jj_3R_72()) {
1502    jj_scanpos = xsp;
1503    if (jj_3R_73()) {
1504    jj_scanpos = xsp;
1505    if (jj_3R_74()) return true;
1506    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1507    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1508    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1509    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1510    return false;
1511  }
1512
1513  final private boolean jj_3R_54() {
1514    if (jj_scan_token(LE2)) return true;
1515    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1516    return false;
1517  }
1518
1519  final private boolean jj_3R_52() {
1520    if (jj_scan_token(GE2)) return true;
1521    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1522    return false;
1523  }
1524
1525  final private boolean jj_3R_50() {
1526    if (jj_scan_token(GT2)) return true;
1527    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1528    return false;
1529  }
1530
1531  final private boolean jj_3R_48() {
1532    if (jj_scan_token(LT2)) return true;
1533    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1534    return false;
1535  }
1536
1537  final private boolean jj_3R_53() {
1538    if (jj_scan_token(LE1)) return true;
1539    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1540    return false;
1541  }
1542
1543  final private boolean jj_3R_16() {
1544    if (jj_3R_13()) return true;
1545    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1546    if (jj_scan_token(COLON)) return true;
1547    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1548    return false;
1549  }
1550
1551  final private boolean jj_3R_38() {
1552    Token xsp;
1553    xsp = jj_scanpos;
1554    if (jj_3R_53()) {
1555    jj_scanpos = xsp;
1556    if (jj_3R_54()) return true;
1557    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1558    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1559    return false;
1560  }
1561
1562  final private boolean jj_3R_51() {
1563    if (jj_scan_token(GE1)) return true;
1564    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1565    return false;
1566  }
1567
1568  final private boolean jj_3R_37() {
1569    Token xsp;
1570    xsp = jj_scanpos;
1571    if (jj_3R_51()) {
1572    jj_scanpos = xsp;
1573    if (jj_3R_52()) return true;
1574    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1575    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1576    return false;
1577  }
1578
1579  final private boolean jj_3R_49() {
1580    if (jj_scan_token(GT1)) return true;
1581    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1582    return false;
1583  }
1584
1585  final private boolean jj_3R_36() {
1586    Token xsp;
1587    xsp = jj_scanpos;
1588    if (jj_3R_49()) {
1589    jj_scanpos = xsp;
1590    if (jj_3R_50()) return true;
1591    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1592    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1593    return false;
1594  }
1595
1596  final private boolean jj_3R_47() {
1597    if (jj_scan_token(LT1)) return true;
1598    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1599    return false;
1600  }
1601
1602  final private boolean jj_3R_35() {
1603    Token xsp;
1604    xsp = jj_scanpos;
1605    if (jj_3R_47()) {
1606    jj_scanpos = xsp;
1607    if (jj_3R_48()) return true;
1608    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1609    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1610    return false;
1611  }
1612
1613  final private boolean jj_3R_12() {
1614    Token xsp;
1615    xsp = jj_scanpos;
1616    if (jj_3R_16()) jj_scanpos = xsp;
1617    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1618    if (jj_3R_13()) return true;
1619    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1620    return false;
1621  }
1622
1623  final private boolean jj_3R_30() {
1624    Token xsp;
1625    xsp = jj_scanpos;
1626    if (jj_3R_35()) {
1627    jj_scanpos = xsp;
1628    if (jj_3R_36()) {
1629    jj_scanpos = xsp;
1630    if (jj_3R_37()) {
1631    jj_scanpos = xsp;
1632    if (jj_3R_38()) return true;
1633    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1634    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1635    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1636    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1637    if (jj_3R_29()) return true;
1638    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1639    return false;
1640  }
1641
1642  final private boolean jj_3R_25() {
1643    if (jj_3R_29()) return true;
1644    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1645    Token xsp;
1646    while (true) {
1647      xsp = jj_scanpos;
1648      if (jj_3R_30()) { jj_scanpos = xsp; break; }
1649      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1650    }
1651    return false;
1652  }
1653
1654  final private boolean jj_3R_64() {
1655    if (jj_3R_75()) return true;
1656    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1657    return false;
1658  }
1659
1660  final private boolean jj_3R_13() {
1661    if (jj_scan_token(IDENTIFIER)) return true;
1662    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1663    return false;
1664  }
1665
1666  final private boolean jj_3R_56() {
1667    if (jj_3R_63()) return true;
1668    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1669    Token xsp;
1670    while (true) {
1671      xsp = jj_scanpos;
1672      if (jj_3R_64()) { jj_scanpos = xsp; break; }
1673      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1674    }
1675    return false;
1676  }
1677
1678  final private boolean jj_3R_93() {
1679    if (jj_scan_token(NULL)) return true;
1680    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1681    return false;
1682  }
1683
1684  public ELParserTokenManager token_source;
1685  SimpleCharStream jj_input_stream;
1686  public Token token, jj_nt;
1687  private int jj_ntk;
1688  private Token jj_scanpos, jj_lastpos;
1689  private int jj_la;
1690  public boolean lookingAhead = false;
1691  private boolean jj_semLA;
1692  private int jj_gen;
1693  final private int[] jj_la1 = new int[35];
1694  final private int[] jj_la1_0 = {0x6,0x6,0x6,0x20007580,0x0,0x0,0x0,0x0,0x18600000,0x600000,0x18000000,0x18600000,0x79e0000,0x180000,0x60000,0x6000000,0x1800000,0x79e0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x20007580,0x0,0x80000000,0x20007580,0x10000,0x7580,0x3000,};
1695  final private int[] jj_la1_1 = {0x0,0x0,0x0,0x50c10,0xc000,0xc000,0x3000,0x3000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x18,0x3e0,0xc0,0x300,0x3e0,0x10c10,0xc00,0x10c10,0x2,0x0,0x40000,0x0,0x50c10,0x2,0x0,0x0,};
1696  final private JJCalls[] jj_2_rtns = new JJCalls[3];
1697  private boolean jj_rescan = false;
1698  private int jj_gc = 0;
1699
1700  public ELParser(java.io.InputStream stream) {
1701    jj_input_stream = new SimpleCharStream(stream, 1, 1);
1702    token_source = new ELParserTokenManager(jj_input_stream);
1703    token = new Token();
1704    jj_ntk = -1;
1705    jj_gen = 0;
1706    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1707    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1708  }
1709
1710  public void ReInit(java.io.InputStream stream) {
1711    jj_input_stream.ReInit(stream, 1, 1);
1712    token_source.ReInit(jj_input_stream);
1713    token = new Token();
1714    jj_ntk = -1;
1715    jj_gen = 0;
1716    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1717    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1718  }
1719
1720  public ELParser(java.io.Reader stream) {
1721    jj_input_stream = new SimpleCharStream(stream, 1, 1);
1722    token_source = new ELParserTokenManager(jj_input_stream);
1723    token = new Token();
1724    jj_ntk = -1;
1725    jj_gen = 0;
1726    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1727    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1728  }
1729
1730  public void ReInit(java.io.Reader stream) {
1731    jj_input_stream.ReInit(stream, 1, 1);
1732    token_source.ReInit(jj_input_stream);
1733    token = new Token();
1734    jj_ntk = -1;
1735    jj_gen = 0;
1736    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1737    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1738  }
1739
1740  public ELParser(ELParserTokenManager tm) {
1741    token_source = tm;
1742    token = new Token();
1743    jj_ntk = -1;
1744    jj_gen = 0;
1745    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1746    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1747  }
1748
1749  public void ReInit(ELParserTokenManager tm) {
1750    token_source = tm;
1751    token = new Token();
1752    jj_ntk = -1;
1753    jj_gen = 0;
1754    for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1755    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1756  }
1757
1758  final private Token jj_consume_token(int kind) throws ParseException {
1759    Token oldToken;
1760    if ((oldToken = token).next != null) token = token.next;
1761    else token = token.next = token_source.getNextToken();
1762    jj_ntk = -1;
1763    if (token.kind == kind) {
1764      jj_gen++;
1765      if (++jj_gc > 100) {
1766        jj_gc = 0;
1767        for (int i = 0; i < jj_2_rtns.length; i++) {
1768          JJCalls c = jj_2_rtns[i];
1769          while (c != null) {
1770            if (c.gen < jj_gen) c.first = null;
1771            c = c.next;
1772          }
1773        }
1774      }
1775      return token;
1776    }
1777    token = oldToken;
1778    jj_kind = kind;
1779    throw generateParseException();
1780  }
1781
1782  final private boolean jj_scan_token(int kind) {
1783    if (jj_scanpos == jj_lastpos) {
1784      jj_la--;
1785      if (jj_scanpos.next == null) {
1786        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
1787      } else {
1788        jj_lastpos = jj_scanpos = jj_scanpos.next;
1789      }
1790    } else {
1791      jj_scanpos = jj_scanpos.next;
1792    }
1793    if (jj_rescan) {
1794      int i = 0; Token tok = token;
1795      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
1796      if (tok != null) jj_add_error_token(kind, i);
1797    }
1798    return (jj_scanpos.kind != kind);
1799  }
1800
1801  final public Token getNextToken() {
1802    if (token.next != null) token = token.next;
1803    else token = token.next = token_source.getNextToken();
1804    jj_ntk = -1;
1805    jj_gen++;
1806    return token;
1807  }
1808
1809  final public Token getToken(int index) {
1810    Token t = lookingAhead ? jj_scanpos : token;
1811    for (int i = 0; i < index; i++) {
1812      if (t.next != null) t = t.next;
1813      else t = t.next = token_source.getNextToken();
1814    }
1815    return t;
1816  }
1817
1818  final private int jj_ntk() {
1819    if ((jj_nt=token.next) == null)
1820      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
1821    else
1822      return (jj_ntk = jj_nt.kind);
1823  }
1824
1825  private java.util.Vector jj_expentries = new java.util.Vector();
1826  private int[] jj_expentry;
1827  private int jj_kind = -1;
1828  private int[] jj_lasttokens = new int[100];
1829  private int jj_endpos;
1830
1831  private void jj_add_error_token(int kind, int pos) {
1832    if (pos >= 100) return;
1833    if (pos == jj_endpos + 1) {
1834      jj_lasttokens[jj_endpos++] = kind;
1835    } else if (jj_endpos != 0) {
1836      jj_expentry = new int[jj_endpos];
1837      for (int i = 0; i < jj_endpos; i++) {
1838        jj_expentry[i] = jj_lasttokens[i];
1839      }
1840      boolean exists = false;
1841      for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
1842        int[] oldentry = (int[])(enum.nextElement());
1843        if (oldentry.length == jj_expentry.length) {
1844          exists = true;
1845          for (int i = 0; i < jj_expentry.length; i++) {
1846            if (oldentry[i] != jj_expentry[i]) {
1847              exists = false;
1848              break;
1849            }
1850          }
1851          if (exists) break;
1852        }
1853      }
1854      if (!exists) jj_expentries.addElement(jj_expentry);
1855      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
1856    }
1857  }
1858
1859  final public ParseException generateParseException() {
1860    jj_expentries.removeAllElements();
1861    boolean[] la1tokens = new boolean[55];
1862    for (int i = 0; i < 55; i++) {
1863      la1tokens[i] = false;
1864    }
1865    if (jj_kind >= 0) {
1866      la1tokens[jj_kind] = true;
1867      jj_kind = -1;
1868    }
1869    for (int i = 0; i < 35; i++) {
1870      if (jj_la1[i] == jj_gen) {
1871        for (int j = 0; j < 32; j++) {
1872          if ((jj_la1_0[i] & (1<<j)) != 0) {
1873            la1tokens[j] = true;
1874          }
1875          if ((jj_la1_1[i] & (1<<j)) != 0) {
1876            la1tokens[32+j] = true;
1877          }
1878        }
1879      }
1880    }
1881    for (int i = 0; i < 55; i++) {
1882      if (la1tokens[i]) {
1883        jj_expentry = new int[1];
1884        jj_expentry[0] = i;
1885        jj_expentries.addElement(jj_expentry);
1886      }
1887    }
1888    jj_endpos = 0;
1889    jj_rescan_token();
1890    jj_add_error_token(0, 0);
1891    int[][] exptokseq = new int[jj_expentries.size()][];
1892    for (int i = 0; i < jj_expentries.size(); i++) {
1893      exptokseq[i] = (int[])jj_expentries.elementAt(i);
1894    }
1895    return new ParseException(token, exptokseq, tokenImage);
1896  }
1897
1898  final public void enable_tracing() {
1899  }
1900
1901  final public void disable_tracing() {
1902  }
1903
1904  final private void jj_rescan_token() {
1905    jj_rescan = true;
1906    for (int i = 0; i < 3; i++) {
1907      JJCalls p = jj_2_rtns[i];
1908      do {
1909        if (p.gen > jj_gen) {
1910          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
1911          switch (i) {
1912            case 0: jj_3_1(); break;
1913            case 1: jj_3_2(); break;
1914            case 2: jj_3_3(); break;
1915          }
1916        }
1917        p = p.next;
1918      } while (p != null);
1919    }
1920    jj_rescan = false;
1921  }
1922
1923  final private void jj_save(int index, int xla) {
1924    JJCalls p = jj_2_rtns[index];
1925    while (p.gen > jj_gen) {
1926      if (p.next == null) { p = p.next = new JJCalls(); break; }
1927      p = p.next;
1928    }
1929    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
1930  }
1931
1932  static final class JJCalls {
1933    int gen;
1934    Token first;
1935    int arg;
1936    JJCalls next;
1937  }
1938
1939}
1940
Popular Tags