View Javadoc

1   /* Generated By:JavaCC: Do not edit this line. ELParser.java */
2   package org.apache.commons.el.parser;
3   
4   import java.util.ArrayList;
5   import java.util.List;
6   
7   import org.apache.commons.el.AndOperator;
8   import org.apache.commons.el.ArraySuffix;
9   import org.apache.commons.el.BinaryOperator;
10  import org.apache.commons.el.BinaryOperatorExpression;
11  import org.apache.commons.el.BooleanLiteral;
12  import org.apache.commons.el.ComplexValue;
13  import org.apache.commons.el.ConditionalExpression;
14  import org.apache.commons.el.DivideOperator;
15  import org.apache.commons.el.EmptyOperator;
16  import org.apache.commons.el.EqualsOperator;
17  import org.apache.commons.el.Expression;
18  import org.apache.commons.el.ExpressionString;
19  import org.apache.commons.el.FloatingPointLiteral;
20  import org.apache.commons.el.FunctionInvocation;
21  import org.apache.commons.el.GreaterThanOperator;
22  import org.apache.commons.el.GreaterThanOrEqualsOperator;
23  import org.apache.commons.el.IntegerLiteral;
24  import org.apache.commons.el.LessThanOperator;
25  import org.apache.commons.el.LessThanOrEqualsOperator;
26  import org.apache.commons.el.Literal;
27  import org.apache.commons.el.MinusOperator;
28  import org.apache.commons.el.ModulusOperator;
29  import org.apache.commons.el.MultiplyOperator;
30  import org.apache.commons.el.NamedValue;
31  import org.apache.commons.el.NotEqualsOperator;
32  import org.apache.commons.el.NotOperator;
33  import org.apache.commons.el.NullLiteral;
34  import org.apache.commons.el.OrOperator;
35  import org.apache.commons.el.PlusOperator;
36  import org.apache.commons.el.PropertySuffix;
37  import org.apache.commons.el.StringLiteral;
38  import org.apache.commons.el.UnaryMinusOperator;
39  import org.apache.commons.el.UnaryOperator;
40  import org.apache.commons.el.UnaryOperatorExpression;
41  import org.apache.commons.el.ValueSuffix;
42  
43  /**
44   * Generated EL parser.
45   * 
46   * @author Nathan Abramson
47   * @author Shawn Bayern
48   */
49  
50  public class ELParser implements ELParserConstants {
51  
52    public static void main(String args[])
53         throws ParseException
54    {
55      ELParser parser = new ELParser (System.in);
56      parser.ExpressionString ();
57    }
58  
59  /*****************************************
60   * GRAMMAR PRODUCTIONS *
61   *****************************************/
62  
63  /**
64   *
65   * Returns a String if the expression string is a single String, an
66   * Expression if the expression string is a single Expression, an
67   * ExpressionString if it's a mixture of both.
68   **/
69    final public Object ExpressionString() throws ParseException {
70    Object ret = "";
71    List elems = null;
72    Object elem;
73      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
74      case NON_EXPRESSION_TEXT:
75        ret = AttrValueString();
76        break;
77      case START_EXPRESSION:
78        ret = AttrValueExpression();
79        break;
80      default:
81        jj_la1[0] = jj_gen;
82        jj_consume_token(-1);
83        throw new ParseException();
84      }
85      label_1:
86      while (true) {
87        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
88        case NON_EXPRESSION_TEXT:
89        case START_EXPRESSION:
90          ;
91          break;
92        default:
93          jj_la1[1] = jj_gen;
94          break label_1;
95        }
96        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
97        case NON_EXPRESSION_TEXT:
98          elem = AttrValueString();
99          break;
100       case START_EXPRESSION:
101         elem = AttrValueExpression();
102         break;
103       default:
104         jj_la1[2] = jj_gen;
105         jj_consume_token(-1);
106         throw new ParseException();
107       }
108        if (elems == null) {
109          elems = new ArrayList ();
110          elems.add (ret);
111        }
112        elems.add (elem);
113     }
114     if (elems != null) {
115       ret = new ExpressionString (elems.toArray ());
116     }
117     {if (true) return ret;}
118     throw new Error("Missing return statement in function");
119   }
120 
121   final public String AttrValueString() throws ParseException {
122   Token t;
123     t = jj_consume_token(NON_EXPRESSION_TEXT);
124     {if (true) return t.image;}
125     throw new Error("Missing return statement in function");
126   }
127 
128   final public Expression AttrValueExpression() throws ParseException {
129   Expression exp;
130     jj_consume_token(START_EXPRESSION);
131     exp = Expression();
132     jj_consume_token(END_EXPRESSION);
133      {if (true) return exp;}
134     throw new Error("Missing return statement in function");
135   }
136 
137   final public Expression Expression() throws ParseException {
138   Expression ret;
139     if (jj_2_1(2147483647)) {
140       ret = ConditionalExpression();
141     } else {
142       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
143       case INTEGER_LITERAL:
144       case FLOATING_POINT_LITERAL:
145       case STRING_LITERAL:
146       case TRUE:
147       case FALSE:
148       case NULL:
149       case LPAREN:
150       case MINUS:
151       case NOT1:
152       case NOT2:
153       case EMPTY:
154       case IDENTIFIER:
155         ret = OrExpression();
156         break;
157       default:
158         jj_la1[3] = jj_gen;
159         jj_consume_token(-1);
160         throw new ParseException();
161       }
162     }
163     {if (true) return ret;}
164     throw new Error("Missing return statement in function");
165   }
166 
167   final public Expression OrExpression() throws ParseException {
168   Expression startExpression;
169   BinaryOperator operator;
170   Expression expression;
171   List operators = null;
172   List expressions = null;
173     startExpression = AndExpression();
174     label_2:
175     while (true) {
176       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
177       case OR1:
178       case OR2:
179         ;
180         break;
181       default:
182         jj_la1[4] = jj_gen;
183         break label_2;
184       }
185       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
186       case OR1:
187         jj_consume_token(OR1);
188         break;
189       case OR2:
190         jj_consume_token(OR2);
191         break;
192       default:
193         jj_la1[5] = jj_gen;
194         jj_consume_token(-1);
195         throw new ParseException();
196       }
197                         operator = OrOperator.SINGLETON;
198       expression = AndExpression();
199         if (operators == null) {
200           operators = new ArrayList ();
201           expressions = new ArrayList ();
202         }
203         operators.add (operator);
204         expressions.add (expression);
205     }
206     if (operators != null) {
207       {if (true) return new BinaryOperatorExpression (startExpression,
208                                            operators,
209                                            expressions);}
210     }
211     else {
212       {if (true) return startExpression;}
213     }
214     throw new Error("Missing return statement in function");
215   }
216 
217   final public Expression AndExpression() throws ParseException {
218   Expression startExpression;
219   BinaryOperator operator;
220   Expression expression;
221   List operators = null;
222   List expressions = null;
223     startExpression = EqualityExpression();
224     label_3:
225     while (true) {
226       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
227       case AND1:
228       case AND2:
229         ;
230         break;
231       default:
232         jj_la1[6] = jj_gen;
233         break label_3;
234       }
235       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
236       case AND1:
237         jj_consume_token(AND1);
238         break;
239       case AND2:
240         jj_consume_token(AND2);
241         break;
242       default:
243         jj_la1[7] = jj_gen;
244         jj_consume_token(-1);
245         throw new ParseException();
246       }
247                           operator = AndOperator.SINGLETON;
248       expression = EqualityExpression();
249         if (operators == null) {
250           operators = new ArrayList ();
251           expressions = new ArrayList ();
252         }
253         operators.add (operator);
254         expressions.add (expression);
255     }
256     if (operators != null) {
257       {if (true) return new BinaryOperatorExpression (startExpression,
258                                            operators,
259                                            expressions);}
260     }
261     else {
262       {if (true) return startExpression;}
263     }
264     throw new Error("Missing return statement in function");
265   }
266 
267   final public Expression EqualityExpression() throws ParseException {
268   Expression startExpression;
269   BinaryOperator operator;
270   Expression expression;
271   List operators = null;
272   List expressions = null;
273     startExpression = RelationalExpression();
274     label_4:
275     while (true) {
276       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
277       case EQ1:
278       case EQ2:
279       case NE1:
280       case NE2:
281         ;
282         break;
283       default:
284         jj_la1[8] = jj_gen;
285         break label_4;
286       }
287       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
288       case EQ1:
289       case EQ2:
290         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
291         case EQ1:
292           jj_consume_token(EQ1);
293           break;
294         case EQ2:
295           jj_consume_token(EQ2);
296           break;
297         default:
298           jj_la1[9] = jj_gen;
299           jj_consume_token(-1);
300           throw new ParseException();
301         }
302                         operator = EqualsOperator.SINGLETON;
303         break;
304       case NE1:
305       case NE2:
306         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
307         case NE1:
308           jj_consume_token(NE1);
309           break;
310         case NE2:
311           jj_consume_token(NE2);
312           break;
313         default:
314           jj_la1[10] = jj_gen;
315           jj_consume_token(-1);
316           throw new ParseException();
317         }
318                           operator = NotEqualsOperator.SINGLETON;
319         break;
320       default:
321         jj_la1[11] = jj_gen;
322         jj_consume_token(-1);
323         throw new ParseException();
324       }
325       expression = RelationalExpression();
326         if (operators == null) {
327           operators = new ArrayList ();
328           expressions = new ArrayList ();
329         }
330         operators.add (operator);
331         expressions.add (expression);
332     }
333     if (operators != null) {
334       {if (true) return new BinaryOperatorExpression (startExpression,
335                                            operators,
336                                            expressions);}
337     }
338     else {
339       {if (true) return startExpression;}
340     }
341     throw new Error("Missing return statement in function");
342   }
343 
344   final public Expression RelationalExpression() throws ParseException {
345   Expression startExpression;
346   BinaryOperator operator;
347   Expression expression;
348   List operators = null;
349   List expressions = null;
350     startExpression = AddExpression();
351     label_5:
352     while (true) {
353       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
354       case GT1:
355       case GT2:
356       case LT1:
357       case LT2:
358       case LE1:
359       case LE2:
360       case GE1:
361       case GE2:
362         ;
363         break;
364       default:
365         jj_la1[12] = jj_gen;
366         break label_5;
367       }
368       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
369       case LT1:
370       case LT2:
371         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
372         case LT1:
373           jj_consume_token(LT1);
374           break;
375         case LT2:
376           jj_consume_token(LT2);
377           break;
378         default:
379           jj_la1[13] = jj_gen;
380           jj_consume_token(-1);
381           throw new ParseException();
382         }
383                         operator = LessThanOperator.SINGLETON;
384         break;
385       case GT1:
386       case GT2:
387         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
388         case GT1:
389           jj_consume_token(GT1);
390           break;
391         case GT2:
392           jj_consume_token(GT2);
393           break;
394         default:
395           jj_la1[14] = jj_gen;
396           jj_consume_token(-1);
397           throw new ParseException();
398         }
399                           operator = GreaterThanOperator.SINGLETON;
400         break;
401       case GE1:
402       case GE2:
403         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
404         case GE1:
405           jj_consume_token(GE1);
406           break;
407         case GE2:
408           jj_consume_token(GE2);
409           break;
410         default:
411           jj_la1[15] = jj_gen;
412           jj_consume_token(-1);
413           throw new ParseException();
414         }
415                           operator = GreaterThanOrEqualsOperator.SINGLETON;
416         break;
417       case LE1:
418       case LE2:
419         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
420         case LE1:
421           jj_consume_token(LE1);
422           break;
423         case LE2:
424           jj_consume_token(LE2);
425           break;
426         default:
427           jj_la1[16] = jj_gen;
428           jj_consume_token(-1);
429           throw new ParseException();
430         }
431                           operator = LessThanOrEqualsOperator.SINGLETON;
432         break;
433       default:
434         jj_la1[17] = jj_gen;
435         jj_consume_token(-1);
436         throw new ParseException();
437       }
438       expression = AddExpression();
439         if (operators == null) {
440           operators = new ArrayList ();
441           expressions = new ArrayList ();
442         }
443         operators.add (operator);
444         expressions.add (expression);
445     }
446     if (operators != null) {
447       {if (true) return new BinaryOperatorExpression (startExpression,
448                                            operators,
449                                            expressions);}
450     }
451     else {
452       {if (true) return startExpression;}
453     }
454     throw new Error("Missing return statement in function");
455   }
456 
457   final public Expression AddExpression() throws ParseException {
458   Expression startExpression;
459   BinaryOperator operator;
460   Expression expression;
461   List operators = null;
462   List expressions = null;
463     startExpression = MultiplyExpression();
464     label_6:
465     while (true) {
466       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
467       case PLUS:
468       case MINUS:
469         ;
470         break;
471       default:
472         jj_la1[18] = jj_gen;
473         break label_6;
474       }
475       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
476       case PLUS:
477         jj_consume_token(PLUS);
478                operator = PlusOperator.SINGLETON;
479         break;
480       case MINUS:
481         jj_consume_token(MINUS);
482                   operator = MinusOperator.SINGLETON;
483         break;
484       default:
485         jj_la1[19] = jj_gen;
486         jj_consume_token(-1);
487         throw new ParseException();
488       }
489       expression = MultiplyExpression();
490         if (operators == null) {
491           operators = new ArrayList ();
492           expressions = new ArrayList ();
493         }
494         operators.add (operator);
495         expressions.add (expression);
496     }
497     if (operators != null) {
498       {if (true) return new BinaryOperatorExpression (startExpression,
499                                            operators,
500                                            expressions);}
501     }
502     else {
503       {if (true) return startExpression;}
504     }
505     throw new Error("Missing return statement in function");
506   }
507 
508   final public Expression MultiplyExpression() throws ParseException {
509   Expression startExpression;
510   BinaryOperator operator;
511   Expression expression;
512   List operators = null;
513   List expressions = null;
514     startExpression = UnaryExpression();
515     label_7:
516     while (true) {
517       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
518       case MULTIPLY:
519       case DIVIDE1:
520       case DIVIDE2:
521       case MODULUS1:
522       case MODULUS2:
523         ;
524         break;
525       default:
526         jj_la1[20] = jj_gen;
527         break label_7;
528       }
529       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
530       case MULTIPLY:
531         jj_consume_token(MULTIPLY);
532                    operator = MultiplyOperator.SINGLETON;
533         break;
534       case DIVIDE1:
535       case DIVIDE2:
536         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
537         case DIVIDE1:
538           jj_consume_token(DIVIDE1);
539           break;
540         case DIVIDE2:
541           jj_consume_token(DIVIDE2);
542           break;
543         default:
544           jj_la1[21] = jj_gen;
545           jj_consume_token(-1);
546           throw new ParseException();
547         }
548                                   operator = DivideOperator.SINGLETON;
549         break;
550       case MODULUS1:
551       case MODULUS2:
552         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
553         case MODULUS1:
554           jj_consume_token(MODULUS1);
555           break;
556         case MODULUS2:
557           jj_consume_token(MODULUS2);
558           break;
559         default:
560           jj_la1[22] = jj_gen;
561           jj_consume_token(-1);
562           throw new ParseException();
563         }
564                                     operator = ModulusOperator.SINGLETON;
565         break;
566       default:
567         jj_la1[23] = jj_gen;
568         jj_consume_token(-1);
569         throw new ParseException();
570       }
571       expression = UnaryExpression();
572         if (operators == null) {
573           operators = new ArrayList ();
574           expressions = new ArrayList ();
575         }
576         operators.add (operator);
577         expressions.add (expression);
578     }
579     if (operators != null) {
580       {if (true) return new BinaryOperatorExpression (startExpression,
581                                            operators,
582                                            expressions);}
583     }
584     else {
585       {if (true) return startExpression;}
586     }
587     throw new Error("Missing return statement in function");
588   }
589 
590   final public Expression ConditionalExpression() throws ParseException {
591  Expression condition, trueBranch, falseBranch;
592     condition = OrExpression();
593     jj_consume_token(COND);
594     trueBranch = Expression();
595     jj_consume_token(COLON);
596     falseBranch = Expression();
597   {if (true) return new ConditionalExpression(condition, trueBranch, falseBranch);}
598     throw new Error("Missing return statement in function");
599   }
600 
601   final public Expression UnaryExpression() throws ParseException {
602   Expression expression;
603   UnaryOperator singleOperator = null;
604   UnaryOperator operator;
605   List operators = null;
606     label_8:
607     while (true) {
608       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
609       case MINUS:
610       case NOT1:
611       case NOT2:
612       case EMPTY:
613         ;
614         break;
615       default:
616         jj_la1[24] = jj_gen;
617         break label_8;
618       }
619       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
620       case NOT1:
621       case NOT2:
622         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
623         case NOT1:
624           jj_consume_token(NOT1);
625           break;
626         case NOT2:
627           jj_consume_token(NOT2);
628           break;
629         default:
630           jj_la1[25] = jj_gen;
631           jj_consume_token(-1);
632           throw new ParseException();
633         }
634                         operator = NotOperator.SINGLETON;
635         break;
636       case MINUS:
637         jj_consume_token(MINUS);
638                 operator = UnaryMinusOperator.SINGLETON;
639         break;
640       case EMPTY:
641         jj_consume_token(EMPTY);
642                 operator = EmptyOperator.SINGLETON;
643         break;
644       default:
645         jj_la1[26] = jj_gen;
646         jj_consume_token(-1);
647         throw new ParseException();
648       }
649      if (singleOperator == null) {
650       singleOperator = operator;
651      }
652      else if (operators == null) {
653       operators = new ArrayList ();
654       operators.add (singleOperator);
655       operators.add (operator);
656      }
657      else {
658       operators.add (operator);
659      }
660     }
661     expression = Value();
662     if (operators != null) {
663       {if (true) return new UnaryOperatorExpression (null, operators, expression);}
664     }
665     else if (singleOperator != null) {
666       {if (true) return new UnaryOperatorExpression (singleOperator, null, expression);}
667     }
668     else {
669       {if (true) return expression;}
670     }
671     throw new Error("Missing return statement in function");
672   }
673 
674   final public Expression Value() throws ParseException {
675   Expression prefix;
676   ValueSuffix suffix;
677   List suffixes = null;
678     prefix = ValuePrefix();
679     label_9:
680     while (true) {
681       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
682       case DOT:
683       case LBRACKET:
684         ;
685         break;
686       default:
687         jj_la1[27] = jj_gen;
688         break label_9;
689       }
690       suffix = ValueSuffix();
691         if (suffixes == null) {
692           suffixes = new ArrayList ();
693         }
694         suffixes.add (suffix);
695     }
696     if (suffixes == null) {
697       {if (true) return prefix;}
698     }
699     else {
700       {if (true) return new ComplexValue (prefix, suffixes);}
701     }
702     throw new Error("Missing return statement in function");
703   }
704 
705 /**
706  * This is an element that can start a value
707  **/
708   final public Expression ValuePrefix() throws ParseException {
709   Expression ret;
710     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
711     case INTEGER_LITERAL:
712     case FLOATING_POINT_LITERAL:
713     case STRING_LITERAL:
714     case TRUE:
715     case FALSE:
716     case NULL:
717       ret = Literal();
718       break;
719     case LPAREN:
720       jj_consume_token(LPAREN);
721       ret = Expression();
722       jj_consume_token(RPAREN);
723       break;
724     default:
725       jj_la1[28] = jj_gen;
726       if (jj_2_2(2147483647)) {
727         ret = FunctionInvocation();
728       } else {
729         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
730         case IDENTIFIER:
731           ret = NamedValue();
732           break;
733         default:
734           jj_la1[29] = jj_gen;
735           jj_consume_token(-1);
736           throw new ParseException();
737         }
738       }
739     }
740       {if (true) return ret;}
741     throw new Error("Missing return statement in function");
742   }
743 
744   final public NamedValue NamedValue() throws ParseException {
745   Token t;
746     t = jj_consume_token(IDENTIFIER);
747                      {if (true) return new NamedValue (t.image);}
748     throw new Error("Missing return statement in function");
749   }
750 
751   final public FunctionInvocation FunctionInvocation() throws ParseException {
752   String qualifiedName;
753   List argumentList = new ArrayList();
754   Expression exp;
755     qualifiedName = QualifiedName();
756     jj_consume_token(LPAREN);
757     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
758     case INTEGER_LITERAL:
759     case FLOATING_POINT_LITERAL:
760     case STRING_LITERAL:
761     case TRUE:
762     case FALSE:
763     case NULL:
764     case LPAREN:
765     case MINUS:
766     case NOT1:
767     case NOT2:
768     case EMPTY:
769     case IDENTIFIER:
770       exp = Expression();
771           argumentList.add(exp);
772       label_10:
773       while (true) {
774         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
775         case COMMA:
776           ;
777           break;
778         default:
779           jj_la1[30] = jj_gen;
780           break label_10;
781         }
782         jj_consume_token(COMMA);
783         exp = Expression();
784           argumentList.add(exp);
785       }
786       break;
787     default:
788       jj_la1[31] = jj_gen;
789       ;
790     }
791     jj_consume_token(RPAREN);
792     {if (true) return new FunctionInvocation(qualifiedName, argumentList);}
793     throw new Error("Missing return statement in function");
794   }
795 
796   final public ValueSuffix ValueSuffix() throws ParseException {
797   ValueSuffix suffix;
798     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
799     case DOT:
800       suffix = PropertySuffix();
801       break;
802     case LBRACKET:
803       suffix = ArraySuffix();
804       break;
805     default:
806       jj_la1[32] = jj_gen;
807       jj_consume_token(-1);
808       throw new ParseException();
809     }
810       {if (true) return suffix;}
811     throw new Error("Missing return statement in function");
812   }
813 
814   final public PropertySuffix PropertySuffix() throws ParseException {
815   Token t;
816   String property;
817     jj_consume_token(DOT);
818     property = Identifier();
819       {if (true) return new PropertySuffix (property);}
820     throw new Error("Missing return statement in function");
821   }
822 
823   final public ArraySuffix ArraySuffix() throws ParseException {
824   Expression index;
825     jj_consume_token(LBRACKET);
826     index = Expression();
827     jj_consume_token(RBRACKET);
828      {if (true) return new ArraySuffix (index);}
829     throw new Error("Missing return statement in function");
830   }
831 
832   final public Literal Literal() throws ParseException {
833   Literal ret;
834     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
835     case TRUE:
836     case FALSE:
837       ret = BooleanLiteral();
838       break;
839     case INTEGER_LITERAL:
840       ret = IntegerLiteral();
841       break;
842     case FLOATING_POINT_LITERAL:
843       ret = FloatingPointLiteral();
844       break;
845     case STRING_LITERAL:
846       ret = StringLiteral();
847       break;
848     case NULL:
849       ret = NullLiteral();
850       break;
851     default:
852       jj_la1[33] = jj_gen;
853       jj_consume_token(-1);
854       throw new ParseException();
855     }
856       {if (true) return ret;}
857     throw new Error("Missing return statement in function");
858   }
859 
860   final public BooleanLiteral BooleanLiteral() throws ParseException {
861     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
862     case TRUE:
863       jj_consume_token(TRUE);
864            {if (true) return BooleanLiteral.TRUE;}
865       break;
866     case FALSE:
867       jj_consume_token(FALSE);
868               {if (true) return BooleanLiteral.FALSE;}
869       break;
870     default:
871       jj_la1[34] = jj_gen;
872       jj_consume_token(-1);
873       throw new ParseException();
874     }
875     throw new Error("Missing return statement in function");
876   }
877 
878   final public StringLiteral StringLiteral() throws ParseException {
879   Token t;
880     t = jj_consume_token(STRING_LITERAL);
881     {if (true) return StringLiteral.fromToken (t.image);}
882     throw new Error("Missing return statement in function");
883   }
884 
885   final public IntegerLiteral IntegerLiteral() throws ParseException {
886   Token t;
887     t = jj_consume_token(INTEGER_LITERAL);
888     {if (true) return new IntegerLiteral (t.image);}
889     throw new Error("Missing return statement in function");
890   }
891 
892   final public FloatingPointLiteral FloatingPointLiteral() throws ParseException {
893   Token t;
894     t = jj_consume_token(FLOATING_POINT_LITERAL);
895     {if (true) return new FloatingPointLiteral (t.image);}
896     throw new Error("Missing return statement in function");
897   }
898 
899   final public NullLiteral NullLiteral() throws ParseException {
900     jj_consume_token(NULL);
901       {if (true) return NullLiteral.SINGLETON;}
902     throw new Error("Missing return statement in function");
903   }
904 
905   final public String Identifier() throws ParseException {
906   Token t;
907     t = jj_consume_token(IDENTIFIER);
908       {if (true) return t.image;}
909     throw new Error("Missing return statement in function");
910   }
911 
912   final public String QualifiedName() throws ParseException {
913   String prefix = null, localPart = null;
914     if (jj_2_3(2147483647)) {
915       prefix = Identifier();
916       jj_consume_token(COLON);
917     } else {
918       ;
919     }
920     localPart = Identifier();
921     if (prefix == null)
922       {if (true) return localPart;}
923     else
924      {if (true) return prefix + ":" + localPart;}
925     throw new Error("Missing return statement in function");
926   }
927 
928   final private boolean jj_2_1(int xla) {
929     jj_la = xla; jj_lastpos = jj_scanpos = token;
930     boolean retval = !jj_3_1();
931     jj_save(0, xla);
932     return retval;
933   }
934 
935   final private boolean jj_2_2(int xla) {
936     jj_la = xla; jj_lastpos = jj_scanpos = token;
937     boolean retval = !jj_3_2();
938     jj_save(1, xla);
939     return retval;
940   }
941 
942   final private boolean jj_2_3(int xla) {
943     jj_la = xla; jj_lastpos = jj_scanpos = token;
944     boolean retval = !jj_3_3();
945     jj_save(2, xla);
946     return retval;
947   }
948 
949   final private boolean jj_3R_42() {
950     if (jj_scan_token(NE2)) return true;
951     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
952     return false;
953   }
954 
955   final private boolean jj_3R_91() {
956     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
957     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
958     return false;
959   }
960 
961   final private boolean jj_3R_40() {
962     if (jj_scan_token(EQ2)) return true;
963     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
964     return false;
965   }
966 
967   final private boolean jj_3R_41() {
968     if (jj_scan_token(NE1)) return true;
969     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
970     return false;
971   }
972 
973   final private boolean jj_3R_32() {
974     Token xsp;
975     xsp = jj_scanpos;
976     if (jj_3R_41()) {
977     jj_scanpos = xsp;
978     if (jj_3R_42()) return true;
979     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
980     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
981     return false;
982   }
983 
984   final private boolean jj_3R_90() {
985     if (jj_scan_token(INTEGER_LITERAL)) return true;
986     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
987     return false;
988   }
989 
990   final private boolean jj_3R_39() {
991     if (jj_scan_token(EQ1)) return true;
992     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
993     return false;
994   }
995 
996   final private boolean jj_3R_31() {
997     Token xsp;
998     xsp = jj_scanpos;
999     if (jj_3R_39()) {
1000     jj_scanpos = xsp;
1001     if (jj_3R_40()) return true;
1002     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1003     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1004     return false;
1005   }
1006 
1007   final private boolean jj_3R_26() {
1008     Token xsp;
1009     xsp = jj_scanpos;
1010     if (jj_3R_31()) {
1011     jj_scanpos = xsp;
1012     if (jj_3R_32()) return true;
1013     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1014     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1015     if (jj_3R_25()) return true;
1016     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1017     return false;
1018   }
1019 
1020   final private boolean jj_3R_70() {
1021     if (jj_scan_token(NOT2)) return true;
1022     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1023     return false;
1024   }
1025 
1026   final private boolean jj_3R_21() {
1027     if (jj_3R_25()) return true;
1028     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1029     Token xsp;
1030     while (true) {
1031       xsp = jj_scanpos;
1032       if (jj_3R_26()) { jj_scanpos = xsp; break; }
1033       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1034     }
1035     return false;
1036   }
1037 
1038   final private boolean jj_3R_92() {
1039     if (jj_scan_token(STRING_LITERAL)) return true;
1040     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1041     return false;
1042   }
1043 
1044   final private boolean jj_3R_62() {
1045     if (jj_scan_token(EMPTY)) return true;
1046     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1047     return false;
1048   }
1049 
1050   final private boolean jj_3R_61() {
1051     if (jj_scan_token(MINUS)) return true;
1052     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1053     return false;
1054   }
1055 
1056   final private boolean jj_3R_69() {
1057     if (jj_scan_token(NOT1)) return true;
1058     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1059     return false;
1060   }
1061 
1062   final private boolean jj_3R_60() {
1063     Token xsp;
1064     xsp = jj_scanpos;
1065     if (jj_3R_69()) {
1066     jj_scanpos = xsp;
1067     if (jj_3R_70()) return true;
1068     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1069     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1070     return false;
1071   }
1072 
1073   final private boolean jj_3R_55() {
1074     Token xsp;
1075     xsp = jj_scanpos;
1076     if (jj_3R_60()) {
1077     jj_scanpos = xsp;
1078     if (jj_3R_61()) {
1079     jj_scanpos = xsp;
1080     if (jj_3R_62()) return true;
1081     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1082     } else 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_96() {
1088     if (jj_scan_token(FALSE)) return true;
1089     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1090     return false;
1091   }
1092 
1093   final private boolean jj_3R_43() {
1094     Token xsp;
1095     while (true) {
1096       xsp = jj_scanpos;
1097       if (jj_3R_55()) { jj_scanpos = xsp; break; }
1098       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1099     }
1100     if (jj_3R_56()) return true;
1101     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1102     return false;
1103   }
1104 
1105   final private boolean jj_3R_95() {
1106     if (jj_scan_token(TRUE)) return true;
1107     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1108     return false;
1109   }
1110 
1111   final private boolean jj_3R_89() {
1112     Token xsp;
1113     xsp = jj_scanpos;
1114     if (jj_3R_95()) {
1115     jj_scanpos = xsp;
1116     if (jj_3R_96()) return true;
1117     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1118     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1119     return false;
1120   }
1121 
1122   final private boolean jj_3R_85() {
1123     if (jj_3R_93()) return true;
1124     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1125     return false;
1126   }
1127 
1128   final private boolean jj_3R_84() {
1129     if (jj_3R_92()) return true;
1130     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1131     return false;
1132   }
1133 
1134   final private boolean jj_3R_83() {
1135     if (jj_3R_91()) return true;
1136     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1137     return false;
1138   }
1139 
1140   final private boolean jj_3R_82() {
1141     if (jj_3R_90()) return true;
1142     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1143     return false;
1144   }
1145 
1146   final private boolean jj_3R_28() {
1147     if (jj_scan_token(AND2)) return true;
1148     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1149     return false;
1150   }
1151 
1152   final private boolean jj_3R_81() {
1153     if (jj_3R_89()) return true;
1154     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1155     return false;
1156   }
1157 
1158   final private boolean jj_3R_76() {
1159     Token xsp;
1160     xsp = jj_scanpos;
1161     if (jj_3R_81()) {
1162     jj_scanpos = xsp;
1163     if (jj_3R_82()) {
1164     jj_scanpos = xsp;
1165     if (jj_3R_83()) {
1166     jj_scanpos = xsp;
1167     if (jj_3R_84()) {
1168     jj_scanpos = xsp;
1169     if (jj_3R_85()) return true;
1170     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1171     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1172     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1173     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1174     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1175     return false;
1176   }
1177 
1178   final private boolean jj_3R_11() {
1179     if (jj_3R_14()) return true;
1180     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1181     if (jj_scan_token(COND)) return true;
1182     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1183     if (jj_3R_15()) return true;
1184     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1185     if (jj_scan_token(COLON)) return true;
1186     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1187     if (jj_3R_15()) return true;
1188     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1189     return false;
1190   }
1191 
1192   final private boolean jj_3R_27() {
1193     if (jj_scan_token(AND1)) return true;
1194     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1195     return false;
1196   }
1197 
1198   final private boolean jj_3R_22() {
1199     Token xsp;
1200     xsp = jj_scanpos;
1201     if (jj_3R_27()) {
1202     jj_scanpos = xsp;
1203     if (jj_3R_28()) return true;
1204     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1205     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1206     if (jj_3R_21()) return true;
1207     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1208     return false;
1209   }
1210 
1211   final private boolean jj_3R_17() {
1212     if (jj_3R_21()) return true;
1213     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1214     Token xsp;
1215     while (true) {
1216       xsp = jj_scanpos;
1217       if (jj_3R_22()) { jj_scanpos = xsp; break; }
1218       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1219     }
1220     return false;
1221   }
1222 
1223   final private boolean jj_3R_68() {
1224     if (jj_scan_token(MODULUS2)) return true;
1225     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1226     return false;
1227   }
1228 
1229   final private boolean jj_3R_88() {
1230     if (jj_scan_token(LBRACKET)) return true;
1231     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1232     if (jj_3R_15()) return true;
1233     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1234     if (jj_scan_token(RBRACKET)) return true;
1235     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1236     return false;
1237   }
1238 
1239   final private boolean jj_3R_66() {
1240     if (jj_scan_token(DIVIDE2)) return true;
1241     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1242     return false;
1243   }
1244 
1245   final private boolean jj_3R_67() {
1246     if (jj_scan_token(MODULUS1)) return true;
1247     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1248     return false;
1249   }
1250 
1251   final private boolean jj_3R_59() {
1252     Token xsp;
1253     xsp = jj_scanpos;
1254     if (jj_3R_67()) {
1255     jj_scanpos = xsp;
1256     if (jj_3R_68()) return true;
1257     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1258     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1259     return false;
1260   }
1261 
1262   final private boolean jj_3R_65() {
1263     if (jj_scan_token(DIVIDE1)) return true;
1264     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1265     return false;
1266   }
1267 
1268   final private boolean jj_3R_87() {
1269     if (jj_scan_token(DOT)) return true;
1270     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1271     if (jj_3R_13()) return true;
1272     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1273     return false;
1274   }
1275 
1276   final private boolean jj_3R_58() {
1277     Token xsp;
1278     xsp = jj_scanpos;
1279     if (jj_3R_65()) {
1280     jj_scanpos = xsp;
1281     if (jj_3R_66()) return true;
1282     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1283     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1284     return false;
1285   }
1286 
1287   final private boolean jj_3R_57() {
1288     if (jj_scan_token(MULTIPLY)) return true;
1289     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1290     return false;
1291   }
1292 
1293   final private boolean jj_3R_44() {
1294     Token xsp;
1295     xsp = jj_scanpos;
1296     if (jj_3R_57()) {
1297     jj_scanpos = xsp;
1298     if (jj_3R_58()) {
1299     jj_scanpos = xsp;
1300     if (jj_3R_59()) return true;
1301     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1302     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1303     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1304     if (jj_3R_43()) return true;
1305     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1306     return false;
1307   }
1308 
1309   final private boolean jj_3R_24() {
1310     if (jj_scan_token(OR2)) return true;
1311     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1312     return false;
1313   }
1314 
1315   final private boolean jj_3R_80() {
1316     if (jj_3R_88()) return true;
1317     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1318     return false;
1319   }
1320 
1321   final private boolean jj_3R_33() {
1322     if (jj_3R_43()) return true;
1323     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1324     Token xsp;
1325     while (true) {
1326       xsp = jj_scanpos;
1327       if (jj_3R_44()) { jj_scanpos = xsp; break; }
1328       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1329     }
1330     return false;
1331   }
1332 
1333   final private boolean jj_3R_79() {
1334     if (jj_3R_87()) return true;
1335     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1336     return false;
1337   }
1338 
1339   final private boolean jj_3R_75() {
1340     Token xsp;
1341     xsp = jj_scanpos;
1342     if (jj_3R_79()) {
1343     jj_scanpos = xsp;
1344     if (jj_3R_80()) return true;
1345     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1346     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1347     return false;
1348   }
1349 
1350   final private boolean jj_3R_23() {
1351     if (jj_scan_token(OR1)) return true;
1352     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1353     return false;
1354   }
1355 
1356   final private boolean jj_3R_18() {
1357     Token xsp;
1358     xsp = jj_scanpos;
1359     if (jj_3R_23()) {
1360     jj_scanpos = xsp;
1361     if (jj_3R_24()) return true;
1362     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1363     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1364     if (jj_3R_17()) return true;
1365     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1366     return false;
1367   }
1368 
1369   final private boolean jj_3R_14() {
1370     if (jj_3R_17()) return true;
1371     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1372     Token xsp;
1373     while (true) {
1374       xsp = jj_scanpos;
1375       if (jj_3R_18()) { jj_scanpos = xsp; break; }
1376       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1377     }
1378     return false;
1379   }
1380 
1381   final private boolean jj_3R_94() {
1382     if (jj_scan_token(COMMA)) return true;
1383     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1384     if (jj_3R_15()) return true;
1385     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1386     return false;
1387   }
1388 
1389   final private boolean jj_3_1() {
1390     if (jj_3R_11()) return true;
1391     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1392     return false;
1393   }
1394 
1395   final private boolean jj_3R_86() {
1396     if (jj_3R_15()) return true;
1397     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1398     Token xsp;
1399     while (true) {
1400       xsp = jj_scanpos;
1401       if (jj_3R_94()) { jj_scanpos = xsp; break; }
1402       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1403     }
1404     return false;
1405   }
1406 
1407   final private boolean jj_3R_20() {
1408     if (jj_3R_14()) return true;
1409     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1410     return false;
1411   }
1412 
1413   final private boolean jj_3R_19() {
1414     if (jj_3R_11()) return true;
1415     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1416     return false;
1417   }
1418 
1419   final private boolean jj_3R_46() {
1420     if (jj_scan_token(MINUS)) return true;
1421     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1422     return false;
1423   }
1424 
1425   final private boolean jj_3R_15() {
1426     Token xsp;
1427     xsp = jj_scanpos;
1428     if (jj_3R_19()) {
1429     jj_scanpos = xsp;
1430     if (jj_3R_20()) return true;
1431     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1432     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1433     return false;
1434   }
1435 
1436   final private boolean jj_3R_45() {
1437     if (jj_scan_token(PLUS)) return true;
1438     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1439     return false;
1440   }
1441 
1442   final private boolean jj_3R_34() {
1443     Token xsp;
1444     xsp = jj_scanpos;
1445     if (jj_3R_45()) {
1446     jj_scanpos = xsp;
1447     if (jj_3R_46()) return true;
1448     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1449     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1450     if (jj_3R_33()) return true;
1451     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1452     return false;
1453   }
1454 
1455   final private boolean jj_3R_77() {
1456     if (jj_3R_12()) return true;
1457     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1458     if (jj_scan_token(LPAREN)) return true;
1459     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1460     Token xsp;
1461     xsp = jj_scanpos;
1462     if (jj_3R_86()) jj_scanpos = xsp;
1463     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1464     if (jj_scan_token(RPAREN)) return true;
1465     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1466     return false;
1467   }
1468 
1469   final private boolean jj_3R_29() {
1470     if (jj_3R_33()) return true;
1471     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1472     Token xsp;
1473     while (true) {
1474       xsp = jj_scanpos;
1475       if (jj_3R_34()) { jj_scanpos = xsp; break; }
1476       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1477     }
1478     return false;
1479   }
1480 
1481   final private boolean jj_3_2() {
1482     if (jj_3R_12()) return true;
1483     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1484     if (jj_scan_token(LPAREN)) return true;
1485     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1486     return false;
1487   }
1488 
1489   final private boolean jj_3R_78() {
1490     if (jj_scan_token(IDENTIFIER)) return true;
1491     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1492     return false;
1493   }
1494 
1495   final private boolean jj_3R_74() {
1496     if (jj_3R_78()) return true;
1497     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1498     return false;
1499   }
1500 
1501   final private boolean jj_3R_73() {
1502     if (jj_3R_77()) return true;
1503     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1504     return false;
1505   }
1506 
1507   final private boolean jj_3R_72() {
1508     if (jj_scan_token(LPAREN)) return true;
1509     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1510     if (jj_3R_15()) return true;
1511     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1512     if (jj_scan_token(RPAREN)) return true;
1513     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1514     return false;
1515   }
1516 
1517   final private boolean jj_3R_71() {
1518     if (jj_3R_76()) return true;
1519     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1520     return false;
1521   }
1522 
1523   final private boolean jj_3_3() {
1524     if (jj_3R_13()) return true;
1525     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1526     if (jj_scan_token(COLON)) return true;
1527     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1528     return false;
1529   }
1530 
1531   final private boolean jj_3R_63() {
1532     Token xsp;
1533     xsp = jj_scanpos;
1534     if (jj_3R_71()) {
1535     jj_scanpos = xsp;
1536     if (jj_3R_72()) {
1537     jj_scanpos = xsp;
1538     if (jj_3R_73()) {
1539     jj_scanpos = xsp;
1540     if (jj_3R_74()) return true;
1541     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1542     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1543     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1544     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1545     return false;
1546   }
1547 
1548   final private boolean jj_3R_54() {
1549     if (jj_scan_token(LE2)) return true;
1550     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1551     return false;
1552   }
1553 
1554   final private boolean jj_3R_52() {
1555     if (jj_scan_token(GE2)) return true;
1556     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1557     return false;
1558   }
1559 
1560   final private boolean jj_3R_50() {
1561     if (jj_scan_token(GT2)) return true;
1562     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1563     return false;
1564   }
1565 
1566   final private boolean jj_3R_48() {
1567     if (jj_scan_token(LT2)) return true;
1568     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1569     return false;
1570   }
1571 
1572   final private boolean jj_3R_53() {
1573     if (jj_scan_token(LE1)) return true;
1574     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1575     return false;
1576   }
1577 
1578   final private boolean jj_3R_16() {
1579     if (jj_3R_13()) return true;
1580     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1581     if (jj_scan_token(COLON)) return true;
1582     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1583     return false;
1584   }
1585 
1586   final private boolean jj_3R_38() {
1587     Token xsp;
1588     xsp = jj_scanpos;
1589     if (jj_3R_53()) {
1590     jj_scanpos = xsp;
1591     if (jj_3R_54()) return true;
1592     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1593     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1594     return false;
1595   }
1596 
1597   final private boolean jj_3R_51() {
1598     if (jj_scan_token(GE1)) return true;
1599     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1600     return false;
1601   }
1602 
1603   final private boolean jj_3R_37() {
1604     Token xsp;
1605     xsp = jj_scanpos;
1606     if (jj_3R_51()) {
1607     jj_scanpos = xsp;
1608     if (jj_3R_52()) return true;
1609     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1610     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1611     return false;
1612   }
1613 
1614   final private boolean jj_3R_49() {
1615     if (jj_scan_token(GT1)) return true;
1616     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1617     return false;
1618   }
1619 
1620   final private boolean jj_3R_36() {
1621     Token xsp;
1622     xsp = jj_scanpos;
1623     if (jj_3R_49()) {
1624     jj_scanpos = xsp;
1625     if (jj_3R_50()) return true;
1626     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1627     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1628     return false;
1629   }
1630 
1631   final private boolean jj_3R_47() {
1632     if (jj_scan_token(LT1)) return true;
1633     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1634     return false;
1635   }
1636 
1637   final private boolean jj_3R_35() {
1638     Token xsp;
1639     xsp = jj_scanpos;
1640     if (jj_3R_47()) {
1641     jj_scanpos = xsp;
1642     if (jj_3R_48()) return true;
1643     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1644     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1645     return false;
1646   }
1647 
1648   final private boolean jj_3R_12() {
1649     Token xsp;
1650     xsp = jj_scanpos;
1651     if (jj_3R_16()) jj_scanpos = xsp;
1652     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1653     if (jj_3R_13()) return true;
1654     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1655     return false;
1656   }
1657 
1658   final private boolean jj_3R_30() {
1659     Token xsp;
1660     xsp = jj_scanpos;
1661     if (jj_3R_35()) {
1662     jj_scanpos = xsp;
1663     if (jj_3R_36()) {
1664     jj_scanpos = xsp;
1665     if (jj_3R_37()) {
1666     jj_scanpos = xsp;
1667     if (jj_3R_38()) return true;
1668     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1669     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1670     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1671     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1672     if (jj_3R_29()) return true;
1673     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1674     return false;
1675   }
1676 
1677   final private boolean jj_3R_25() {
1678     if (jj_3R_29()) return true;
1679     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1680     Token xsp;
1681     while (true) {
1682       xsp = jj_scanpos;
1683       if (jj_3R_30()) { jj_scanpos = xsp; break; }
1684       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1685     }
1686     return false;
1687   }
1688 
1689   final private boolean jj_3R_64() {
1690     if (jj_3R_75()) return true;
1691     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1692     return false;
1693   }
1694 
1695   final private boolean jj_3R_13() {
1696     if (jj_scan_token(IDENTIFIER)) return true;
1697     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1698     return false;
1699   }
1700 
1701   final private boolean jj_3R_56() {
1702     if (jj_3R_63()) return true;
1703     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1704     Token xsp;
1705     while (true) {
1706       xsp = jj_scanpos;
1707       if (jj_3R_64()) { jj_scanpos = xsp; break; }
1708       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1709     }
1710     return false;
1711   }
1712 
1713   final private boolean jj_3R_93() {
1714     if (jj_scan_token(NULL)) return true;
1715     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1716     return false;
1717   }
1718 
1719   public ELParserTokenManager token_source;
1720   SimpleCharStream jj_input_stream;
1721   public Token token, jj_nt;
1722   private int jj_ntk;
1723   private Token jj_scanpos, jj_lastpos;
1724   private int jj_la;
1725   public boolean lookingAhead = false;
1726   private boolean jj_semLA;
1727   private int jj_gen;
1728   final private int[] jj_la1 = new int[35];
1729   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,};
1730   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,};
1731   final private JJCalls[] jj_2_rtns = new JJCalls[3];
1732   private boolean jj_rescan = false;
1733   private int jj_gc = 0;
1734 
1735   public ELParser(java.io.InputStream stream) {
1736     jj_input_stream = new SimpleCharStream(stream, 1, 1);
1737     token_source = new ELParserTokenManager(jj_input_stream);
1738     token = new Token();
1739     jj_ntk = -1;
1740     jj_gen = 0;
1741     for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1742     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1743   }
1744 
1745   public void ReInit(java.io.InputStream stream) {
1746     jj_input_stream.ReInit(stream, 1, 1);
1747     token_source.ReInit(jj_input_stream);
1748     token = new Token();
1749     jj_ntk = -1;
1750     jj_gen = 0;
1751     for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1752     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1753   }
1754 
1755   public ELParser(java.io.Reader stream) {
1756     jj_input_stream = new SimpleCharStream(stream, 1, 1);
1757     token_source = new ELParserTokenManager(jj_input_stream);
1758     token = new Token();
1759     jj_ntk = -1;
1760     jj_gen = 0;
1761     for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1762     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1763   }
1764 
1765   public void ReInit(java.io.Reader stream) {
1766     jj_input_stream.ReInit(stream, 1, 1);
1767     token_source.ReInit(jj_input_stream);
1768     token = new Token();
1769     jj_ntk = -1;
1770     jj_gen = 0;
1771     for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1772     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1773   }
1774 
1775   public ELParser(ELParserTokenManager tm) {
1776     token_source = tm;
1777     token = new Token();
1778     jj_ntk = -1;
1779     jj_gen = 0;
1780     for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1781     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1782   }
1783 
1784   public void ReInit(ELParserTokenManager tm) {
1785     token_source = tm;
1786     token = new Token();
1787     jj_ntk = -1;
1788     jj_gen = 0;
1789     for (int i = 0; i < 35; i++) jj_la1[i] = -1;
1790     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
1791   }
1792 
1793   final private Token jj_consume_token(int kind) throws ParseException {
1794     Token oldToken;
1795     if ((oldToken = token).next != null) token = token.next;
1796     else token = token.next = token_source.getNextToken();
1797     jj_ntk = -1;
1798     if (token.kind == kind) {
1799       jj_gen++;
1800       if (++jj_gc > 100) {
1801         jj_gc = 0;
1802         for (int i = 0; i < jj_2_rtns.length; i++) {
1803           JJCalls c = jj_2_rtns[i];
1804           while (c != null) {
1805             if (c.gen < jj_gen) c.first = null;
1806             c = c.next;
1807           }
1808         }
1809       }
1810       return token;
1811     }
1812     token = oldToken;
1813     jj_kind = kind;
1814     throw generateParseException();
1815   }
1816 
1817   final private boolean jj_scan_token(int kind) {
1818     if (jj_scanpos == jj_lastpos) {
1819       jj_la--;
1820       if (jj_scanpos.next == null) {
1821         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
1822       } else {
1823         jj_lastpos = jj_scanpos = jj_scanpos.next;
1824       }
1825     } else {
1826       jj_scanpos = jj_scanpos.next;
1827     }
1828     if (jj_rescan) {
1829       int i = 0; Token tok = token;
1830       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
1831       if (tok != null) jj_add_error_token(kind, i);
1832     }
1833     return (jj_scanpos.kind != kind);
1834   }
1835 
1836   final public Token getNextToken() {
1837     if (token.next != null) token = token.next;
1838     else token = token.next = token_source.getNextToken();
1839     jj_ntk = -1;
1840     jj_gen++;
1841     return token;
1842   }
1843 
1844   final public Token getToken(int index) {
1845     Token t = lookingAhead ? jj_scanpos : token;
1846     for (int i = 0; i < index; i++) {
1847       if (t.next != null) t = t.next;
1848       else t = t.next = token_source.getNextToken();
1849     }
1850     return t;
1851   }
1852 
1853   final private int jj_ntk() {
1854     if ((jj_nt=token.next) == null)
1855       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
1856     else
1857       return (jj_ntk = jj_nt.kind);
1858   }
1859 
1860   private java.util.Vector jj_expentries = new java.util.Vector();
1861   private int[] jj_expentry;
1862   private int jj_kind = -1;
1863   private int[] jj_lasttokens = new int[100];
1864   private int jj_endpos;
1865 
1866   private void jj_add_error_token(int kind, int pos) {
1867     if (pos >= 100) return;
1868     if (pos == jj_endpos + 1) {
1869       jj_lasttokens[jj_endpos++] = kind;
1870     } else if (jj_endpos != 0) {
1871       jj_expentry = new int[jj_endpos];
1872       for (int i = 0; i < jj_endpos; i++) {
1873         jj_expentry[i] = jj_lasttokens[i];
1874       }
1875       boolean exists = false;
1876       for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) {
1877         int[] oldentry = (int[])(e.nextElement());
1878         if (oldentry.length == jj_expentry.length) {
1879           exists = true;
1880           for (int i = 0; i < jj_expentry.length; i++) {
1881             if (oldentry[i] != jj_expentry[i]) {
1882               exists = false;
1883               break;
1884             }
1885           }
1886           if (exists) break;
1887         }
1888       }
1889       if (!exists) jj_expentries.addElement(jj_expentry);
1890       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
1891     }
1892   }
1893 
1894   final public ParseException generateParseException() {
1895     jj_expentries.removeAllElements();
1896     boolean[] la1tokens = new boolean[55];
1897     for (int i = 0; i < 55; i++) {
1898       la1tokens[i] = false;
1899     }
1900     if (jj_kind >= 0) {
1901       la1tokens[jj_kind] = true;
1902       jj_kind = -1;
1903     }
1904     for (int i = 0; i < 35; i++) {
1905       if (jj_la1[i] == jj_gen) {
1906         for (int j = 0; j < 32; j++) {
1907           if ((jj_la1_0[i] & (1<<j)) != 0) {
1908             la1tokens[j] = true;
1909           }
1910           if ((jj_la1_1[i] & (1<<j)) != 0) {
1911             la1tokens[32+j] = true;
1912           }
1913         }
1914       }
1915     }
1916     for (int i = 0; i < 55; i++) {
1917       if (la1tokens[i]) {
1918         jj_expentry = new int[1];
1919         jj_expentry[0] = i;
1920         jj_expentries.addElement(jj_expentry);
1921       }
1922     }
1923     jj_endpos = 0;
1924     jj_rescan_token();
1925     jj_add_error_token(0, 0);
1926     int[][] exptokseq = new int[jj_expentries.size()][];
1927     for (int i = 0, size = jj_expentries.size(); i < size; i++) {
1928       exptokseq[i] = (int[])jj_expentries.elementAt(i);
1929     }
1930     return new ParseException(token, exptokseq, tokenImage);
1931   }
1932 
1933   final public void enable_tracing() {
1934   }
1935 
1936   final public void disable_tracing() {
1937   }
1938 
1939   final private void jj_rescan_token() {
1940     jj_rescan = true;
1941     for (int i = 0; i < 3; i++) {
1942       JJCalls p = jj_2_rtns[i];
1943       do {
1944         if (p.gen > jj_gen) {
1945           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
1946           switch (i) {
1947             case 0: jj_3_1(); break;
1948             case 1: jj_3_2(); break;
1949             case 2: jj_3_3(); break;
1950           }
1951         }
1952         p = p.next;
1953       } while (p != null);
1954     }
1955     jj_rescan = false;
1956   }
1957 
1958   final private void jj_save(int index, int xla) {
1959     JJCalls p = jj_2_rtns[index];
1960     while (p.gen > jj_gen) {
1961       if (p.next == null) { p = p.next = new JJCalls(); break; }
1962       p = p.next;
1963     }
1964     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
1965   }
1966 
1967   static final class JJCalls {
1968     int gen;
1969     Token first;
1970     int arg;
1971     JJCalls next;
1972   }
1973 
1974 }