Initial Commit
[packages] / xemacs-packages / jde / java / src / jde / debugger / expr / ExpressionParser.java
1 /* Generated By:JavaCC: Do not edit this line. ExpressionParser.java */
2 package jde.debugger.expr;
3
4 import com.sun.jdi.*;
5 import java.util.Stack;
6 import java.util.List;
7 import java.util.ArrayList;
8
9 public class ExpressionParser implements ExpressionParserConstants {
10
11   Stack stack = new Stack();
12   VirtualMachine vm = null;
13   GetFrame frameGetter = null;
14
15   LValue peek() {
16     return (LValue)stack.peek();
17   }
18
19   LValue pop() {
20     return (LValue)stack.pop();
21   }
22
23   void push(LValue lval) {
24     stack.push(lval);
25   }
26
27   public interface GetFrame {
28         StackFrame get() throws IncompatibleThreadStateException;
29   }
30
31   public static Value evaluate(String expr, VirtualMachine vm,
32                                GetFrame frameGetter) throws ParseException,
33                                             InvocationException,
34                                             InvalidTypeException,
35                                             ClassNotLoadedException,
36                                             IncompatibleThreadStateException {
37         java.io.InputStream in = new java.io.ByteArrayInputStream(expr.getBytes());
38         ExpressionParser parser = new ExpressionParser(in);
39         parser.vm = vm;
40         parser.frameGetter = frameGetter;
41         Value value = null;
42         parser.Expression();
43         return parser.pop().getValue();
44   }
45
46   public static void main(String args[]) {
47     ExpressionParser parser;
48     System.out.print("Java Expression Parser:  ");
49     if (args.length == 0) {
50       System.out.println("Reading from standard input . . .");
51       parser = new ExpressionParser(System.in);
52     } else if (args.length == 1) {
53       System.out.println("Reading from file " + args[0] + " . . .");
54       try {
55         parser = new ExpressionParser(new java.io.FileInputStream(args[0]));
56       } catch (java.io.FileNotFoundException e) {
57         System.out.println("Java Parser Version 1.0.2:  File " +
58                            args[0] + " not found.");
59         return;
60       }
61     } else {
62       System.out.println("Usage is one of:");
63       System.out.println("         java ExpressionParser < inputfile");
64       System.out.println("OR");
65       System.out.println("         java ExpressionParser inputfile");
66       return;
67     }
68     try {
69         parser.Expression();
70         System.out.print("Java Expression Parser:  ");
71         System.out.println("Java program parsed successfully.");
72     } catch (ParseException e) {
73         System.out.print("Java Expression Parser:  ");
74         System.out.println("Encountered errors during parse.");
75     }
76   }
77
78 /*****************************************
79  * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
80  *****************************************/
81
82 /*
83  * Type, name and expression syntax follows.
84  */
85   final public void Type() throws ParseException {
86     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
87     case BOOLEAN:
88     case BYTE:
89     case CHAR:
90     case DOUBLE:
91     case FLOAT:
92     case INT:
93     case LONG:
94     case SHORT:
95       PrimitiveType();
96       break;
97     case IDENTIFIER:
98       Name();
99       break;
100     default:
101       jj_la1[0] = jj_gen;
102       jj_consume_token(-1);
103       throw new ParseException();
104     }
105     label_1:
106     while (true) {
107       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
108       case LBRACKET:
109         ;
110         break;
111       default:
112         jj_la1[1] = jj_gen;
113         break label_1;
114       }
115       jj_consume_token(LBRACKET);
116       jj_consume_token(RBRACKET);
117     }
118   }
119
120   final public void PrimitiveType() throws ParseException {
121     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
122     case BOOLEAN:
123       jj_consume_token(BOOLEAN);
124       break;
125     case CHAR:
126       jj_consume_token(CHAR);
127       break;
128     case BYTE:
129       jj_consume_token(BYTE);
130       break;
131     case SHORT:
132       jj_consume_token(SHORT);
133       break;
134     case INT:
135       jj_consume_token(INT);
136       break;
137     case LONG:
138       jj_consume_token(LONG);
139       break;
140     case FLOAT:
141       jj_consume_token(FLOAT);
142       break;
143     case DOUBLE:
144       jj_consume_token(DOUBLE);
145       break;
146     default:
147       jj_la1[2] = jj_gen;
148       jj_consume_token(-1);
149       throw new ParseException();
150     }
151   }
152
153   final public String Name() throws ParseException {
154     StringBuffer sb = new StringBuffer();
155     jj_consume_token(IDENTIFIER);
156     sb.append(token);
157   label_2:
158     while (true) {
159       if (jj_2_1(2)) {
160         ;
161       } else {
162         break label_2;
163       }
164       jj_consume_token(DOT);
165       jj_consume_token(IDENTIFIER);
166       sb.append('.'); sb.append(token);
167     }
168     {if (true) return sb.toString();}
169     throw new Error("Missing return statement in function");
170   }
171
172   final public void NameList() throws ParseException {
173     Name();
174     label_3:
175     while (true) {
176       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
177       case COMMA:
178         ;
179         break;
180       default:
181         jj_la1[3] = jj_gen;
182         break label_3;
183       }
184       jj_consume_token(COMMA);
185       Name();
186     }
187   }
188
189 /*
190  * Expression syntax follows.
191  */
192   final public void Expression() throws ParseException {
193     if (jj_2_2(2147483647)) {
194       Assignment();
195     } else {
196       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
197       case FALSE:
198       case NEW:
199       case NULL:
200       case SUPER:
201       case THIS:
202       case TRUE:
203       case INTEGER_LITERAL:
204       case FLOATING_POINT_LITERAL:
205       case CHARACTER_LITERAL:
206       case STRING_LITERAL:
207       case IDENTIFIER:
208       case LPAREN:
209       case BANG:
210       case TILDE:
211       case INCR:
212       case DECR:
213       case PLUS:
214       case MINUS:
215         ConditionalExpression();
216         break;
217       default:
218         jj_la1[4] = jj_gen;
219         jj_consume_token(-1);
220         throw new ParseException();
221       }
222     }
223   }
224
225   final public void Assignment() throws ParseException {
226     PrimaryExpression();
227     AssignmentOperator();
228     Expression();
229           LValue exprVal = pop(); pop().setValue(exprVal); push(exprVal);
230   }
231
232   final public void AssignmentOperator() throws ParseException {
233     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
234     case ASSIGN:
235       jj_consume_token(ASSIGN);
236       break;
237     case STARASSIGN:
238       jj_consume_token(STARASSIGN);
239       break;
240     case SLASHASSIGN:
241       jj_consume_token(SLASHASSIGN);
242       break;
243     case REMASSIGN:
244       jj_consume_token(REMASSIGN);
245       break;
246     case PLUSASSIGN:
247       jj_consume_token(PLUSASSIGN);
248       break;
249     case MINUSASSIGN:
250       jj_consume_token(MINUSASSIGN);
251       break;
252     case LSHIFTASSIGN:
253       jj_consume_token(LSHIFTASSIGN);
254       break;
255     case RSIGNEDSHIFTASSIGN:
256       jj_consume_token(RSIGNEDSHIFTASSIGN);
257       break;
258     case RUNSIGNEDSHIFTASSIGN:
259       jj_consume_token(RUNSIGNEDSHIFTASSIGN);
260       break;
261     case ANDASSIGN:
262       jj_consume_token(ANDASSIGN);
263       break;
264     case XORASSIGN:
265       jj_consume_token(XORASSIGN);
266       break;
267     case ORASSIGN:
268       jj_consume_token(ORASSIGN);
269       break;
270     default:
271       jj_la1[5] = jj_gen;
272       jj_consume_token(-1);
273       throw new ParseException();
274     }
275   }
276
277   final public void ConditionalExpression() throws ParseException {
278     ConditionalOrExpression();
279     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
280     case HOOK:
281       jj_consume_token(HOOK);
282       Expression();
283       jj_consume_token(COLON);
284       ConditionalExpression();
285                   LValue falseBranch = pop(); LValue trueBranch = pop();
286                   Value cond = pop().interiorGetValue();
287                   if (cond instanceof BooleanValue) {
288                         push(((BooleanValue)cond).booleanValue()?
289                                         trueBranch : falseBranch);
290                   } else {
291                         {if (true) throw new ParseException("Condition must be boolean");}
292                   }
293       break;
294     default:
295       jj_la1[6] = jj_gen;
296       ;
297     }
298   }
299
300   final public void ConditionalOrExpression() throws ParseException {
301     ConditionalAndExpression();
302   label_4:
303     while (true) {
304       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
305       case SC_OR:
306         ;
307         break;
308       default:
309         jj_la1[7] = jj_gen;
310         break label_4;
311       }
312       jj_consume_token(SC_OR);
313       ConditionalAndExpression();
314       {if (true) throw new ParseException("operation not yet supported");}
315     }
316   }
317
318   final public void ConditionalAndExpression() throws ParseException {
319     InclusiveOrExpression();
320     label_5:
321     while (true) {
322       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
323       case SC_AND:
324         ;
325         break;
326       default:
327         jj_la1[8] = jj_gen;
328         break label_5;
329       }
330       jj_consume_token(SC_AND);
331       InclusiveOrExpression();
332                           {if (true) throw new ParseException("operation not yet supported");}
333     }
334   }
335
336   final public void InclusiveOrExpression() throws ParseException {
337     ExclusiveOrExpression();
338     label_6:
339     while (true) {
340       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
341       case BIT_OR:
342         ;
343         break;
344       default:
345         jj_la1[9] = jj_gen;
346         break label_6;
347       }
348       jj_consume_token(BIT_OR);
349       ExclusiveOrExpression();
350                           {if (true) throw new ParseException("operation not yet supported");}
351     }
352   }
353
354   final public void ExclusiveOrExpression() throws ParseException {
355     AndExpression();
356     label_7:
357     while (true) {
358       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
359       case XOR:
360         ;
361         break;
362       default:
363         jj_la1[10] = jj_gen;
364         break label_7;
365       }
366       jj_consume_token(XOR);
367       AndExpression();
368                           {if (true) throw new ParseException("operation not yet supported");}
369     }
370   }
371
372   final public void AndExpression() throws ParseException {
373     EqualityExpression();
374     label_8:
375     while (true) {
376       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
377       case BIT_AND:
378         ;
379         break;
380       default:
381         jj_la1[11] = jj_gen;
382         break label_8;
383       }
384       jj_consume_token(BIT_AND);
385       EqualityExpression();
386                           {if (true) throw new ParseException("operation not yet supported");}
387     }
388   }
389
390   final public void EqualityExpression() throws ParseException {
391  Token tok;
392     InstanceOfExpression();
393     label_9:
394     while (true) {
395       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
396       case EQ:
397       case NE:
398         ;
399         break;
400       default:
401         jj_la1[12] = jj_gen;
402         break label_9;
403       }
404       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
405       case EQ:
406         tok = jj_consume_token(EQ);
407         break;
408       case NE:
409         tok = jj_consume_token(NE);
410         break;
411       default:
412         jj_la1[13] = jj_gen;
413         jj_consume_token(-1);
414         throw new ParseException();
415       }
416       InstanceOfExpression();
417                   LValue left = pop();
418                   push( LValue.booleanOperation(vm, tok, pop(), left) );
419     }
420   }
421
422   final public void InstanceOfExpression() throws ParseException {
423     RelationalExpression();
424     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
425     case INSTANCEOF:
426       jj_consume_token(INSTANCEOF);
427       Type();
428                           {if (true) throw new ParseException("operation not yet supported");}
429       break;
430     default:
431       jj_la1[14] = jj_gen;
432       ;
433     }
434   }
435
436   final public void RelationalExpression() throws ParseException {
437  Token tok;
438     ShiftExpression();
439     label_10:
440     while (true) {
441       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
442       case GT:
443       case LT:
444       case LE:
445       case GE:
446         ;
447         break;
448       default:
449         jj_la1[15] = jj_gen;
450         break label_10;
451       }
452       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
453       case LT:
454         tok = jj_consume_token(LT);
455         break;
456       case GT:
457         tok = jj_consume_token(GT);
458         break;
459       case LE:
460         tok = jj_consume_token(LE);
461         break;
462       case GE:
463         tok = jj_consume_token(GE);
464         break;
465       default:
466         jj_la1[16] = jj_gen;
467         jj_consume_token(-1);
468         throw new ParseException();
469       }
470       ShiftExpression();
471                   LValue left = pop();
472                   push( LValue.booleanOperation(vm, tok, pop(), left) );
473     }
474   }
475
476   final public void ShiftExpression() throws ParseException {
477     AdditiveExpression();
478     label_11:
479     while (true) {
480       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
481       case LSHIFT:
482       case RSIGNEDSHIFT:
483       case RUNSIGNEDSHIFT:
484         ;
485         break;
486       default:
487         jj_la1[17] = jj_gen;
488         break label_11;
489       }
490       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
491       case LSHIFT:
492         jj_consume_token(LSHIFT);
493         break;
494       case RSIGNEDSHIFT:
495         jj_consume_token(RSIGNEDSHIFT);
496         break;
497       case RUNSIGNEDSHIFT:
498         jj_consume_token(RUNSIGNEDSHIFT);
499         break;
500       default:
501         jj_la1[18] = jj_gen;
502         jj_consume_token(-1);
503         throw new ParseException();
504       }
505       AdditiveExpression();
506                           {if (true) throw new ParseException("operation not yet supported");}
507     }
508   }
509
510   final public void AdditiveExpression() throws ParseException {
511     Token tok;
512     MultiplicativeExpression();
513   label_12:
514     while (true) {
515       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
516       case PLUS:
517       case MINUS:
518         ;
519         break;
520       default:
521         jj_la1[19] = jj_gen;
522         break label_12;
523       }
524       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
525       case PLUS:
526         tok = jj_consume_token(PLUS);
527         break;
528       case MINUS:
529         tok = jj_consume_token(MINUS);
530         break;
531       default:
532         jj_la1[20] = jj_gen;
533         jj_consume_token(-1);
534         throw new ParseException();
535       }
536       MultiplicativeExpression();
537       LValue left = pop();
538       push( LValue.operation(vm, tok, pop(), left) );
539     }
540   }
541
542   final public void MultiplicativeExpression() throws ParseException {
543  Token tok;
544     UnaryExpression();
545     label_13:
546     while (true) {
547       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
548       case STAR:
549       case SLASH:
550       case REM:
551         ;
552         break;
553       default:
554         jj_la1[21] = jj_gen;
555         break label_13;
556       }
557       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
558       case STAR:
559         tok = jj_consume_token(STAR);
560         break;
561       case SLASH:
562         tok = jj_consume_token(SLASH);
563         break;
564       case REM:
565         tok = jj_consume_token(REM);
566         break;
567       default:
568         jj_la1[22] = jj_gen;
569         jj_consume_token(-1);
570         throw new ParseException();
571       }
572       UnaryExpression();
573                   LValue left = pop();
574                   push( LValue.operation(vm, tok, pop(), left) );
575     }
576   }
577
578   final public void UnaryExpression() throws ParseException {
579     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
580     case PLUS:
581     case MINUS:
582       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
583       case PLUS:
584         jj_consume_token(PLUS);
585         break;
586       case MINUS:
587         jj_consume_token(MINUS);
588         break;
589       default:
590         jj_la1[23] = jj_gen;
591         jj_consume_token(-1);
592         throw new ParseException();
593       }
594       UnaryExpression();
595                           {if (true) throw new ParseException("operation not yet supported");}
596       break;
597     case INCR:
598       PreIncrementExpression();
599       break;
600     case DECR:
601       PreDecrementExpression();
602       break;
603     case FALSE:
604     case NEW:
605     case NULL:
606     case SUPER:
607     case THIS:
608     case TRUE:
609     case INTEGER_LITERAL:
610     case FLOATING_POINT_LITERAL:
611     case CHARACTER_LITERAL:
612     case STRING_LITERAL:
613     case IDENTIFIER:
614     case LPAREN:
615     case BANG:
616     case TILDE:
617       UnaryExpressionNotPlusMinus();
618       break;
619     default:
620       jj_la1[24] = jj_gen;
621       jj_consume_token(-1);
622       throw new ParseException();
623     }
624   }
625
626   final public void PreIncrementExpression() throws ParseException {
627     jj_consume_token(INCR);
628     PrimaryExpression();
629                           {if (true) throw new ParseException("operation not yet supported");}
630   }
631
632   final public void PreDecrementExpression() throws ParseException {
633     jj_consume_token(DECR);
634     PrimaryExpression();
635                           {if (true) throw new ParseException("operation not yet supported");}
636   }
637
638   final public void UnaryExpressionNotPlusMinus() throws ParseException {
639     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
640     case BANG:
641     case TILDE:
642       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
643       case TILDE:
644         jj_consume_token(TILDE);
645         break;
646       case BANG:
647         jj_consume_token(BANG);
648         break;
649       default:
650         jj_la1[25] = jj_gen;
651         jj_consume_token(-1);
652         throw new ParseException();
653       }
654       UnaryExpression();
655                           {if (true) throw new ParseException("operation not yet supported");}
656       break;
657     default:
658       jj_la1[26] = jj_gen;
659       if (jj_2_3(2147483647)) {
660         CastExpression();
661       } else {
662         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
663         case FALSE:
664         case NEW:
665         case NULL:
666         case SUPER:
667         case THIS:
668         case TRUE:
669         case INTEGER_LITERAL:
670         case FLOATING_POINT_LITERAL:
671         case CHARACTER_LITERAL:
672         case STRING_LITERAL:
673         case IDENTIFIER:
674         case LPAREN:
675           PostfixExpression();
676           break;
677         default:
678           jj_la1[27] = jj_gen;
679           jj_consume_token(-1);
680           throw new ParseException();
681         }
682       }
683     }
684   }
685
686 // This production is to determine lookahead only.  The LOOKAHEAD specifications
687 // below are not used, but they are there just to indicate that we know about
688 // this.
689   final public void CastLookahead() throws ParseException {
690     if (jj_2_4(2)) {
691       jj_consume_token(LPAREN);
692       PrimitiveType();
693     } else if (jj_2_5(2147483647)) {
694       jj_consume_token(LPAREN);
695       Name();
696       jj_consume_token(LBRACKET);
697       jj_consume_token(RBRACKET);
698     } else {
699       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
700       case LPAREN:
701         jj_consume_token(LPAREN);
702         Name();
703         jj_consume_token(RPAREN);
704         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
705         case TILDE:
706           jj_consume_token(TILDE);
707           break;
708         case BANG:
709           jj_consume_token(BANG);
710           break;
711         case LPAREN:
712           jj_consume_token(LPAREN);
713           break;
714         case IDENTIFIER:
715           jj_consume_token(IDENTIFIER);
716           break;
717         case THIS:
718           jj_consume_token(THIS);
719           break;
720         case SUPER:
721           jj_consume_token(SUPER);
722           break;
723         case NEW:
724           jj_consume_token(NEW);
725           break;
726         case FALSE:
727         case NULL:
728         case TRUE:
729         case INTEGER_LITERAL:
730         case FLOATING_POINT_LITERAL:
731         case CHARACTER_LITERAL:
732         case STRING_LITERAL:
733           Literal();
734           break;
735         default:
736           jj_la1[28] = jj_gen;
737           jj_consume_token(-1);
738           throw new ParseException();
739         }
740         break;
741       default:
742         jj_la1[29] = jj_gen;
743         jj_consume_token(-1);
744         throw new ParseException();
745       }
746     }
747   }
748
749   final public void PostfixExpression() throws ParseException {
750     PrimaryExpression();
751     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
752     case INCR:
753     case DECR:
754       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
755       case INCR:
756         jj_consume_token(INCR);
757         break;
758       case DECR:
759         jj_consume_token(DECR);
760                           {if (true) throw new ParseException("operation not yet supported");}
761         break;
762       default:
763         jj_la1[30] = jj_gen;
764         jj_consume_token(-1);
765         throw new ParseException();
766       }
767       break;
768     default:
769       jj_la1[31] = jj_gen;
770       ;
771     }
772   }
773
774   final public void CastExpression() throws ParseException {
775     if (jj_2_6(2)) {
776       jj_consume_token(LPAREN);
777       PrimitiveType();
778       label_14:
779       while (true) {
780         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
781         case LBRACKET:
782           ;
783           break;
784         default:
785           jj_la1[32] = jj_gen;
786           break label_14;
787         }
788         jj_consume_token(LBRACKET);
789         jj_consume_token(RBRACKET);
790       }
791       jj_consume_token(RPAREN);
792       UnaryExpression();
793     } else {
794       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
795       case LPAREN:
796         jj_consume_token(LPAREN);
797         Name();
798         label_15:
799         while (true) {
800           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
801           case LBRACKET:
802             ;
803             break;
804           default:
805             jj_la1[33] = jj_gen;
806             break label_15;
807           }
808           jj_consume_token(LBRACKET);
809           jj_consume_token(RBRACKET);
810         }
811         jj_consume_token(RPAREN);
812         UnaryExpressionNotPlusMinus();
813         break;
814       default:
815         jj_la1[34] = jj_gen;
816         jj_consume_token(-1);
817         throw new ParseException();
818       }
819     }
820   }
821
822   final public void PrimaryExpression() throws ParseException {
823     PrimaryPrefix();
824     label_16:
825     while (true) {
826       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
827       case LPAREN:
828       case LBRACKET:
829       case DOT:
830         ;
831         break;
832       default:
833         jj_la1[35] = jj_gen;
834         break label_16;
835       }
836       PrimarySuffix();
837     }
838   }
839
840   final public void PrimaryPrefix() throws ParseException {
841     String name;
842     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
843     case FALSE:
844     case NULL:
845     case TRUE:
846     case INTEGER_LITERAL:
847     case FLOATING_POINT_LITERAL:
848     case CHARACTER_LITERAL:
849     case STRING_LITERAL:
850       Literal();
851       break;
852     case IDENTIFIER:
853       name = Name();
854       push(LValue.makeName(vm, frameGetter, name));
855       break;
856     case THIS:
857       jj_consume_token(THIS);
858       push(LValue.makeThisObject(vm, frameGetter, token));
859       break;
860     case SUPER:
861       jj_consume_token(SUPER);
862       jj_consume_token(DOT);
863       jj_consume_token(IDENTIFIER);
864       {if (true) throw new ParseException("operation not yet supported");}
865       break;
866     case LPAREN:
867       jj_consume_token(LPAREN);
868       Expression();
869       jj_consume_token(RPAREN);
870       break;
871     case NEW:
872       AllocationExpression();
873       break;
874     default:
875       jj_la1[36] = jj_gen;
876       jj_consume_token(-1);
877       throw new ParseException();
878     }
879   }
880
881   final public void PrimarySuffix() throws ParseException {
882  List argList;
883     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
884     case LBRACKET:
885       jj_consume_token(LBRACKET);
886       Expression();
887       jj_consume_token(RBRACKET);
888                           LValue index = pop();
889                           push(pop().arrayElementLValue(index));
890       break;
891     case DOT:
892       jj_consume_token(DOT);
893       jj_consume_token(IDENTIFIER);
894                           push(pop().memberLValue(frameGetter, token.image));
895       break;
896     case LPAREN:
897       argList = Arguments();
898                           peek().invokeWith(argList);
899       break;
900     default:
901       jj_la1[37] = jj_gen;
902       jj_consume_token(-1);
903       throw new ParseException();
904     }
905   }
906
907   final public void Literal() throws ParseException {
908     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
909     case INTEGER_LITERAL:
910       jj_consume_token(INTEGER_LITERAL);
911                           push(LValue.makeInteger(vm, token));
912       break;
913     case FLOATING_POINT_LITERAL:
914       jj_consume_token(FLOATING_POINT_LITERAL);
915                           push(LValue.makeFloat(vm, token));
916       break;
917     case CHARACTER_LITERAL:
918       jj_consume_token(CHARACTER_LITERAL);
919                           push(LValue.makeCharacter(vm, token));
920       break;
921     case STRING_LITERAL:
922       jj_consume_token(STRING_LITERAL);
923                           push(LValue.makeString(vm, token));
924       break;
925     case FALSE:
926     case TRUE:
927       BooleanLiteral();
928                           push(LValue.makeBoolean(vm, token));
929       break;
930     case NULL:
931       NullLiteral();
932                           push(LValue.makeNull(vm, token));
933       break;
934     default:
935       jj_la1[38] = jj_gen;
936       jj_consume_token(-1);
937       throw new ParseException();
938     }
939   }
940
941   final public void BooleanLiteral() throws ParseException {
942     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
943     case TRUE:
944       jj_consume_token(TRUE);
945       break;
946     case FALSE:
947       jj_consume_token(FALSE);
948       break;
949     default:
950       jj_la1[39] = jj_gen;
951       jj_consume_token(-1);
952       throw new ParseException();
953     }
954   }
955
956   final public void NullLiteral() throws ParseException {
957     jj_consume_token(NULL);
958   }
959
960   final public List Arguments() throws ParseException {
961  List argList = new ArrayList();
962     jj_consume_token(LPAREN);
963     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
964     case FALSE:
965     case NEW:
966     case NULL:
967     case SUPER:
968     case THIS:
969     case TRUE:
970     case INTEGER_LITERAL:
971     case FLOATING_POINT_LITERAL:
972     case CHARACTER_LITERAL:
973     case STRING_LITERAL:
974     case IDENTIFIER:
975     case LPAREN:
976     case BANG:
977     case TILDE:
978     case INCR:
979     case DECR:
980     case PLUS:
981     case MINUS:
982       ArgumentList(argList);
983       break;
984     default:
985       jj_la1[40] = jj_gen;
986       ;
987     }
988     jj_consume_token(RPAREN);
989     {if (true) return argList;}
990     throw new Error("Missing return statement in function");
991   }
992
993   final public void ArgumentList(List argList) throws ParseException {
994     Expression();
995                 argList.add(pop().interiorGetValue());
996     label_17:
997     while (true) {
998       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
999       case COMMA:
1000         ;
1001         break;
1002       default:
1003         jj_la1[41] = jj_gen;
1004         break label_17;
1005       }
1006       jj_consume_token(COMMA);
1007       Expression();
1008                       argList.add(pop().interiorGetValue());
1009     }
1010   }
1011
1012   final public void AllocationExpression() throws ParseException {
1013  List argList; String className;
1014     if (jj_2_7(2)) {
1015       jj_consume_token(NEW);
1016       PrimitiveType();
1017       ArrayDimensions();
1018     } else {
1019       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1020       case NEW:
1021         jj_consume_token(NEW);
1022         className = Name();
1023         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1024         case LPAREN:
1025           argList = Arguments();
1026                           push(LValue.makeNewObject(vm, frameGetter, className, argList));
1027           break;
1028         case LBRACKET:
1029           ArrayDimensions();
1030                           {if (true) throw new ParseException("operation not yet supported");}
1031           break;
1032         default:
1033           jj_la1[42] = jj_gen;
1034           jj_consume_token(-1);
1035           throw new ParseException();
1036         }
1037         break;
1038       default:
1039         jj_la1[43] = jj_gen;
1040         jj_consume_token(-1);
1041         throw new ParseException();
1042       }
1043     }
1044   }
1045
1046 /*
1047  * The second LOOKAHEAD specification below is to parse to PrimarySuffix
1048  * if there is an expression between the "[...]".
1049  */
1050   final public void ArrayDimensions() throws ParseException {
1051     label_18:
1052     while (true) {
1053       jj_consume_token(LBRACKET);
1054       Expression();
1055       jj_consume_token(RBRACKET);
1056       if (jj_2_8(2)) {
1057         ;
1058       } else {
1059         break label_18;
1060       }
1061     }
1062     label_19:
1063     while (true) {
1064       if (jj_2_9(2)) {
1065         ;
1066       } else {
1067         break label_19;
1068       }
1069       jj_consume_token(LBRACKET);
1070       jj_consume_token(RBRACKET);
1071     }
1072   }
1073
1074   final private boolean jj_2_1(int xla) {
1075     jj_la = xla; jj_lastpos = jj_scanpos = token;
1076     boolean retval = !jj_3_1();
1077     jj_save(0, xla);
1078     return retval;
1079   }
1080
1081   final private boolean jj_2_2(int xla) {
1082     jj_la = xla; jj_lastpos = jj_scanpos = token;
1083     boolean retval = !jj_3_2();
1084     jj_save(1, xla);
1085     return retval;
1086   }
1087
1088   final private boolean jj_2_3(int xla) {
1089     jj_la = xla; jj_lastpos = jj_scanpos = token;
1090     boolean retval = !jj_3_3();
1091     jj_save(2, xla);
1092     return retval;
1093   }
1094
1095   final private boolean jj_2_4(int xla) {
1096     jj_la = xla; jj_lastpos = jj_scanpos = token;
1097     boolean retval = !jj_3_4();
1098     jj_save(3, xla);
1099     return retval;
1100   }
1101
1102   final private boolean jj_2_5(int xla) {
1103     jj_la = xla; jj_lastpos = jj_scanpos = token;
1104     boolean retval = !jj_3_5();
1105     jj_save(4, xla);
1106     return retval;
1107   }
1108
1109   final private boolean jj_2_6(int xla) {
1110     jj_la = xla; jj_lastpos = jj_scanpos = token;
1111     boolean retval = !jj_3_6();
1112     jj_save(5, xla);
1113     return retval;
1114   }
1115
1116   final private boolean jj_2_7(int xla) {
1117     jj_la = xla; jj_lastpos = jj_scanpos = token;
1118     boolean retval = !jj_3_7();
1119     jj_save(6, xla);
1120     return retval;
1121   }
1122
1123   final private boolean jj_2_8(int xla) {
1124     jj_la = xla; jj_lastpos = jj_scanpos = token;
1125     boolean retval = !jj_3_8();
1126     jj_save(7, xla);
1127     return retval;
1128   }
1129
1130   final private boolean jj_2_9(int xla) {
1131     jj_la = xla; jj_lastpos = jj_scanpos = token;
1132     boolean retval = !jj_3_9();
1133     jj_save(8, xla);
1134     return retval;
1135   }
1136
1137   final private boolean jj_3R_154() {
1138     if (jj_scan_token(INCR)) return true;
1139     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1140     return false;
1141   }
1142
1143   final private boolean jj_3R_151() {
1144     Token xsp;
1145     xsp = jj_scanpos;
1146     if (jj_3R_154()) {
1147     jj_scanpos = xsp;
1148     if (jj_3R_155()) return true;
1149     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1150     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1151     return false;
1152   }
1153
1154   final private boolean jj_3R_148() {
1155     Token xsp;
1156     xsp = jj_scanpos;
1157     if (jj_3_6()) {
1158     jj_scanpos = xsp;
1159     if (jj_3R_150()) return true;
1160     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1161     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1162     return false;
1163   }
1164
1165   final private boolean jj_3_6() {
1166     if (jj_scan_token(LPAREN)) return true;
1167     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1168     if (jj_3R_23()) return true;
1169     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1170     Token xsp;
1171     while (true) {
1172       xsp = jj_scanpos;
1173       if (jj_3R_152()) { jj_scanpos = xsp; break; }
1174       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1175     }
1176     if (jj_scan_token(RPAREN)) return true;
1177     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1178     if (jj_3R_115()) return true;
1179     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1180     return false;
1181   }
1182
1183   final private boolean jj_3R_25() {
1184     Token xsp;
1185     xsp = jj_scanpos;
1186     if (jj_3R_50()) {
1187     jj_scanpos = xsp;
1188     if (jj_3R_51()) return true;
1189     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1190     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1191     return false;
1192   }
1193
1194   final private boolean jj_3R_50() {
1195     if (jj_3R_67()) return true;
1196     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1197     return false;
1198   }
1199
1200   final private boolean jj_3_5() {
1201     if (jj_scan_token(LPAREN)) return true;
1202     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1203     if (jj_3R_24()) return true;
1204     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1205     if (jj_scan_token(LBRACKET)) return true;
1206     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1207     return false;
1208   }
1209
1210   final private boolean jj_3R_149() {
1211     if (jj_3R_20()) return true;
1212     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1213     Token xsp;
1214     xsp = jj_scanpos;
1215     if (jj_3R_151()) jj_scanpos = xsp;
1216     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1217     return false;
1218   }
1219
1220   final private boolean jj_3R_41() {
1221     if (jj_scan_token(LPAREN)) return true;
1222     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1223     if (jj_3R_24()) return true;
1224     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1225     if (jj_scan_token(RPAREN)) return true;
1226     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1227     Token xsp;
1228     xsp = jj_scanpos;
1229     if (jj_3R_59()) {
1230     jj_scanpos = xsp;
1231     if (jj_3R_60()) {
1232     jj_scanpos = xsp;
1233     if (jj_3R_61()) {
1234     jj_scanpos = xsp;
1235     if (jj_3R_62()) {
1236     jj_scanpos = xsp;
1237     if (jj_3R_63()) {
1238     jj_scanpos = xsp;
1239     if (jj_3R_64()) {
1240     jj_scanpos = xsp;
1241     if (jj_3R_65()) {
1242     jj_scanpos = xsp;
1243     if (jj_3R_66()) return true;
1244     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1245     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1246     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1247     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1248     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1249     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1250     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1251     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1252     return false;
1253   }
1254
1255   final private boolean jj_3R_40() {
1256     if (jj_scan_token(LPAREN)) return true;
1257     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1258     if (jj_3R_24()) return true;
1259     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1260     if (jj_scan_token(LBRACKET)) return true;
1261     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1262     if (jj_scan_token(RBRACKET)) return true;
1263     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1264     return false;
1265   }
1266
1267   final private boolean jj_3R_123() {
1268     if (jj_scan_token(LBRACKET)) return true;
1269     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1270     if (jj_scan_token(RBRACKET)) return true;
1271     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1272     return false;
1273   }
1274
1275   final private boolean jj_3_1() {
1276     if (jj_scan_token(DOT)) return true;
1277     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1278     if (jj_scan_token(IDENTIFIER)) return true;
1279     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1280     return false;
1281   }
1282
1283   final private boolean jj_3_4() {
1284     if (jj_scan_token(LPAREN)) return true;
1285     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1286     if (jj_3R_23()) return true;
1287     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1288     return false;
1289   }
1290
1291   final private boolean jj_3R_22() {
1292     Token xsp;
1293     xsp = jj_scanpos;
1294     if (jj_3_4()) {
1295     jj_scanpos = xsp;
1296     if (jj_3R_40()) {
1297     jj_scanpos = xsp;
1298     if (jj_3R_41()) return true;
1299     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1300     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1301     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1302     return false;
1303   }
1304
1305   final private boolean jj_3_3() {
1306     if (jj_3R_22()) return true;
1307     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1308     return false;
1309   }
1310
1311   final private boolean jj_3R_24() {
1312     if (jj_scan_token(IDENTIFIER)) return true;
1313     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1314     Token xsp;
1315     while (true) {
1316       xsp = jj_scanpos;
1317       if (jj_3_1()) { jj_scanpos = xsp; break; }
1318       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1319     }
1320     return false;
1321   }
1322
1323   final private boolean jj_3R_147() {
1324     if (jj_scan_token(BANG)) return true;
1325     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1326     return false;
1327   }
1328
1329   final private boolean jj_3R_142() {
1330     if (jj_3R_149()) return true;
1331     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1332     return false;
1333   }
1334
1335   final private boolean jj_3R_122() {
1336     if (jj_3R_24()) return true;
1337     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1338     return false;
1339   }
1340
1341   final private boolean jj_3R_49() {
1342     if (jj_scan_token(DOUBLE)) return true;
1343     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1344     return false;
1345   }
1346
1347   final private boolean jj_3R_141() {
1348     if (jj_3R_148()) return true;
1349     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1350     return false;
1351   }
1352
1353   final private boolean jj_3R_48() {
1354     if (jj_scan_token(FLOAT)) return true;
1355     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1356     return false;
1357   }
1358
1359   final private boolean jj_3R_146() {
1360     if (jj_scan_token(TILDE)) return true;
1361     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1362     return false;
1363   }
1364
1365   final private boolean jj_3R_47() {
1366     if (jj_scan_token(LONG)) return true;
1367     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1368     return false;
1369   }
1370
1371   final private boolean jj_3R_140() {
1372     Token xsp;
1373     xsp = jj_scanpos;
1374     if (jj_3R_146()) {
1375     jj_scanpos = xsp;
1376     if (jj_3R_147()) return true;
1377     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1378     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1379     if (jj_3R_115()) return true;
1380     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1381     return false;
1382   }
1383
1384   final private boolean jj_3R_136() {
1385     Token xsp;
1386     xsp = jj_scanpos;
1387     if (jj_3R_140()) {
1388     jj_scanpos = xsp;
1389     if (jj_3R_141()) {
1390     jj_scanpos = xsp;
1391     if (jj_3R_142()) return true;
1392     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1393     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1394     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1395     return false;
1396   }
1397
1398   final private boolean jj_3R_46() {
1399     if (jj_scan_token(INT)) return true;
1400     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1401     return false;
1402   }
1403
1404   final private boolean jj_3R_145() {
1405     if (jj_scan_token(REM)) return true;
1406     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1407     return false;
1408   }
1409
1410   final private boolean jj_3R_45() {
1411     if (jj_scan_token(SHORT)) return true;
1412     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1413     return false;
1414   }
1415
1416   final private boolean jj_3R_44() {
1417     if (jj_scan_token(BYTE)) return true;
1418     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1419     return false;
1420   }
1421
1422   final private boolean jj_3R_135() {
1423     if (jj_scan_token(DECR)) return true;
1424     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1425     if (jj_3R_20()) return true;
1426     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1427     return false;
1428   }
1429
1430   final private boolean jj_3R_43() {
1431     if (jj_scan_token(CHAR)) return true;
1432     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1433     return false;
1434   }
1435
1436   final private boolean jj_3R_23() {
1437     Token xsp;
1438     xsp = jj_scanpos;
1439     if (jj_3R_42()) {
1440     jj_scanpos = xsp;
1441     if (jj_3R_43()) {
1442     jj_scanpos = xsp;
1443     if (jj_3R_44()) {
1444     jj_scanpos = xsp;
1445     if (jj_3R_45()) {
1446     jj_scanpos = xsp;
1447     if (jj_3R_46()) {
1448     jj_scanpos = xsp;
1449     if (jj_3R_47()) {
1450     jj_scanpos = xsp;
1451     if (jj_3R_48()) {
1452     jj_scanpos = xsp;
1453     if (jj_3R_49()) return true;
1454     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1455     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1456     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1457     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1458     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1459     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1460     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1461     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1462     return false;
1463   }
1464
1465   final private boolean jj_3R_42() {
1466     if (jj_scan_token(BOOLEAN)) return true;
1467     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1468     return false;
1469   }
1470
1471   final private boolean jj_3_9() {
1472     if (jj_scan_token(LBRACKET)) return true;
1473     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1474     if (jj_scan_token(RBRACKET)) return true;
1475     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1476     return false;
1477   }
1478
1479   final private boolean jj_3R_121() {
1480     if (jj_3R_23()) return true;
1481     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1482     return false;
1483   }
1484
1485   final private boolean jj_3R_144() {
1486     if (jj_scan_token(SLASH)) return true;
1487     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1488     return false;
1489   }
1490
1491   final private boolean jj_3R_134() {
1492     if (jj_scan_token(INCR)) return true;
1493     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1494     if (jj_3R_20()) return true;
1495     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1496     return false;
1497   }
1498
1499   final private boolean jj_3R_114() {
1500     Token xsp;
1501     xsp = jj_scanpos;
1502     if (jj_3R_121()) {
1503     jj_scanpos = xsp;
1504     if (jj_3R_122()) return true;
1505     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1506     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1507     while (true) {
1508       xsp = jj_scanpos;
1509       if (jj_3R_123()) { jj_scanpos = xsp; break; }
1510       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1511     }
1512     return false;
1513   }
1514
1515   final private boolean jj_3R_120() {
1516     if (jj_scan_token(GE)) return true;
1517     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1518     return false;
1519   }
1520
1521   final private boolean jj_3R_133() {
1522     if (jj_scan_token(MINUS)) return true;
1523     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1524     return false;
1525   }
1526
1527   final private boolean jj_3R_127() {
1528     if (jj_3R_136()) return true;
1529     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1530     return false;
1531   }
1532
1533   final private boolean jj_3R_126() {
1534     if (jj_3R_135()) return true;
1535     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1536     return false;
1537   }
1538
1539   final private boolean jj_3R_139() {
1540     if (jj_scan_token(MINUS)) return true;
1541     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1542     return false;
1543   }
1544
1545   final private boolean jj_3R_125() {
1546     if (jj_3R_134()) return true;
1547     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1548     return false;
1549   }
1550
1551   final private boolean jj_3R_132() {
1552     if (jj_scan_token(PLUS)) return true;
1553     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1554     return false;
1555   }
1556
1557   final private boolean jj_3R_143() {
1558     if (jj_scan_token(STAR)) return true;
1559     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1560     return false;
1561   }
1562
1563   final private boolean jj_3R_124() {
1564     Token xsp;
1565     xsp = jj_scanpos;
1566     if (jj_3R_132()) {
1567     jj_scanpos = xsp;
1568     if (jj_3R_133()) return true;
1569     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1570     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1571     if (jj_3R_115()) return true;
1572     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1573     return false;
1574   }
1575
1576   final private boolean jj_3R_115() {
1577     Token xsp;
1578     xsp = jj_scanpos;
1579     if (jj_3R_124()) {
1580     jj_scanpos = xsp;
1581     if (jj_3R_125()) {
1582     jj_scanpos = xsp;
1583     if (jj_3R_126()) {
1584     jj_scanpos = xsp;
1585     if (jj_3R_127()) return true;
1586     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1587     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1588     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1589     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1590     return false;
1591   }
1592
1593   final private boolean jj_3R_137() {
1594     Token xsp;
1595     xsp = jj_scanpos;
1596     if (jj_3R_143()) {
1597     jj_scanpos = xsp;
1598     if (jj_3R_144()) {
1599     jj_scanpos = xsp;
1600     if (jj_3R_145()) return true;
1601     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1602     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1603     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1604     if (jj_3R_115()) return true;
1605     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1606     return false;
1607   }
1608
1609   final private boolean jj_3R_131() {
1610     if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
1611     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1612     return false;
1613   }
1614
1615   final private boolean jj_3R_119() {
1616     if (jj_scan_token(LE)) return true;
1617     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1618     return false;
1619   }
1620
1621   final private boolean jj_3R_138() {
1622     if (jj_scan_token(PLUS)) return true;
1623     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1624     return false;
1625   }
1626
1627   final private boolean jj_3R_112() {
1628     if (jj_3R_115()) return true;
1629     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1630     Token xsp;
1631     while (true) {
1632       xsp = jj_scanpos;
1633       if (jj_3R_137()) { jj_scanpos = xsp; break; }
1634       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1635     }
1636     return false;
1637   }
1638
1639   final private boolean jj_3R_88() {
1640     if (jj_3R_86()) return true;
1641     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1642     return false;
1643   }
1644
1645   final private boolean jj_3R_130() {
1646     if (jj_scan_token(RSIGNEDSHIFT)) return true;
1647     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1648     return false;
1649   }
1650
1651   final private boolean jj_3R_128() {
1652     Token xsp;
1653     xsp = jj_scanpos;
1654     if (jj_3R_138()) {
1655     jj_scanpos = xsp;
1656     if (jj_3R_139()) return true;
1657     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1658     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1659     if (jj_3R_112()) return true;
1660     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1661     return false;
1662   }
1663
1664   final private boolean jj_3R_87() {
1665     if (jj_3R_82()) return true;
1666     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1667     return false;
1668   }
1669
1670   final private boolean jj_3R_118() {
1671     if (jj_scan_token(GT)) return true;
1672     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1673     return false;
1674   }
1675
1676   final private boolean jj_3R_129() {
1677     if (jj_scan_token(LSHIFT)) return true;
1678     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1679     return false;
1680   }
1681
1682   final private boolean jj_3R_116() {
1683     Token xsp;
1684     xsp = jj_scanpos;
1685     if (jj_3R_129()) {
1686     jj_scanpos = xsp;
1687     if (jj_3R_130()) {
1688     jj_scanpos = xsp;
1689     if (jj_3R_131()) return true;
1690     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1691     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1692     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1693     if (jj_3R_108()) return true;
1694     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1695     return false;
1696   }
1697
1698   final private boolean jj_3R_108() {
1699     if (jj_3R_112()) return true;
1700     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1701     Token xsp;
1702     while (true) {
1703       xsp = jj_scanpos;
1704       if (jj_3R_128()) { jj_scanpos = xsp; break; }
1705       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1706     }
1707     return false;
1708   }
1709
1710   final private boolean jj_3_8() {
1711     if (jj_scan_token(LBRACKET)) return true;
1712     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1713     if (jj_3R_25()) return true;
1714     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1715     if (jj_scan_token(RBRACKET)) return true;
1716     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1717     return false;
1718   }
1719
1720   final private boolean jj_3R_86() {
1721     Token xsp;
1722     if (jj_3_8()) return true;
1723     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1724     while (true) {
1725       xsp = jj_scanpos;
1726       if (jj_3_8()) { jj_scanpos = xsp; break; }
1727       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1728     }
1729     while (true) {
1730       xsp = jj_scanpos;
1731       if (jj_3_9()) { jj_scanpos = xsp; break; }
1732       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1733     }
1734     return false;
1735   }
1736
1737   final private boolean jj_3R_117() {
1738     if (jj_scan_token(LT)) return true;
1739     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1740     return false;
1741   }
1742
1743   final private boolean jj_3R_106() {
1744     if (jj_3R_108()) return true;
1745     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1746     Token xsp;
1747     while (true) {
1748       xsp = jj_scanpos;
1749       if (jj_3R_116()) { jj_scanpos = xsp; break; }
1750       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1751     }
1752     return false;
1753   }
1754
1755   final private boolean jj_3R_113() {
1756     Token xsp;
1757     xsp = jj_scanpos;
1758     if (jj_3R_117()) {
1759     jj_scanpos = xsp;
1760     if (jj_3R_118()) {
1761     jj_scanpos = xsp;
1762     if (jj_3R_119()) {
1763     jj_scanpos = xsp;
1764     if (jj_3R_120()) return true;
1765     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1766     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1767     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1768     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1769     if (jj_3R_106()) return true;
1770     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1771     return false;
1772   }
1773
1774   final private boolean jj_3R_111() {
1775     if (jj_scan_token(NE)) return true;
1776     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1777     return false;
1778   }
1779
1780   final private boolean jj_3R_109() {
1781     if (jj_scan_token(INSTANCEOF)) return true;
1782     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1783     if (jj_3R_114()) return true;
1784     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1785     return false;
1786   }
1787
1788   final private boolean jj_3R_104() {
1789     if (jj_3R_106()) return true;
1790     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1791     Token xsp;
1792     while (true) {
1793       xsp = jj_scanpos;
1794       if (jj_3R_113()) { jj_scanpos = xsp; break; }
1795       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1796     }
1797     return false;
1798   }
1799
1800   final private boolean jj_3R_81() {
1801     if (jj_scan_token(NEW)) return true;
1802     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1803     if (jj_3R_24()) return true;
1804     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1805     Token xsp;
1806     xsp = jj_scanpos;
1807     if (jj_3R_87()) {
1808     jj_scanpos = xsp;
1809     if (jj_3R_88()) return true;
1810     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1811     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1812     return false;
1813   }
1814
1815   final private boolean jj_3_7() {
1816     if (jj_scan_token(NEW)) return true;
1817     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1818     if (jj_3R_23()) return true;
1819     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1820     if (jj_3R_86()) return true;
1821     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1822     return false;
1823   }
1824
1825   final private boolean jj_3R_70() {
1826     Token xsp;
1827     xsp = jj_scanpos;
1828     if (jj_3_7()) {
1829     jj_scanpos = xsp;
1830     if (jj_3R_81()) return true;
1831     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1832     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1833     return false;
1834   }
1835
1836   final private boolean jj_3R_97() {
1837     if (jj_scan_token(COMMA)) return true;
1838     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1839     if (jj_3R_25()) return true;
1840     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1841     return false;
1842   }
1843
1844   final private boolean jj_3R_39() {
1845     if (jj_scan_token(ORASSIGN)) return true;
1846     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1847     return false;
1848   }
1849
1850   final private boolean jj_3R_110() {
1851     if (jj_scan_token(EQ)) return true;
1852     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1853     return false;
1854   }
1855
1856   final private boolean jj_3R_102() {
1857     if (jj_3R_104()) return true;
1858     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1859     Token xsp;
1860     xsp = jj_scanpos;
1861     if (jj_3R_109()) jj_scanpos = xsp;
1862     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1863     return false;
1864   }
1865
1866   final private boolean jj_3R_107() {
1867     Token xsp;
1868     xsp = jj_scanpos;
1869     if (jj_3R_110()) {
1870     jj_scanpos = xsp;
1871     if (jj_3R_111()) return true;
1872     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1873     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1874     if (jj_3R_102()) return true;
1875     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1876     return false;
1877   }
1878
1879   final private boolean jj_3R_94() {
1880     if (jj_3R_25()) return true;
1881     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1882     Token xsp;
1883     while (true) {
1884       xsp = jj_scanpos;
1885       if (jj_3R_97()) { jj_scanpos = xsp; break; }
1886       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1887     }
1888     return false;
1889   }
1890
1891   final private boolean jj_3R_89() {
1892     if (jj_3R_94()) return true;
1893     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1894     return false;
1895   }
1896
1897   final private boolean jj_3R_38() {
1898     if (jj_scan_token(XORASSIGN)) return true;
1899     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1900     return false;
1901   }
1902
1903   final private boolean jj_3R_82() {
1904     if (jj_scan_token(LPAREN)) return true;
1905     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1906     Token xsp;
1907     xsp = jj_scanpos;
1908     if (jj_3R_89()) jj_scanpos = xsp;
1909     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1910     if (jj_scan_token(RPAREN)) return true;
1911     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1912     return false;
1913   }
1914
1915   final private boolean jj_3R_105() {
1916     if (jj_scan_token(BIT_AND)) return true;
1917     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1918     if (jj_3R_100()) return true;
1919     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1920     return false;
1921   }
1922
1923   final private boolean jj_3R_100() {
1924     if (jj_3R_102()) return true;
1925     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1926     Token xsp;
1927     while (true) {
1928       xsp = jj_scanpos;
1929       if (jj_3R_107()) { jj_scanpos = xsp; break; }
1930       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1931     }
1932     return false;
1933   }
1934
1935   final private boolean jj_3R_37() {
1936     if (jj_scan_token(ANDASSIGN)) return true;
1937     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1938     return false;
1939   }
1940
1941   final private boolean jj_3R_85() {
1942     if (jj_scan_token(NULL)) return true;
1943     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1944     return false;
1945   }
1946
1947   final private boolean jj_3R_103() {
1948     if (jj_scan_token(XOR)) return true;
1949     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1950     if (jj_3R_98()) return true;
1951     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1952     return false;
1953   }
1954
1955   final private boolean jj_3R_98() {
1956     if (jj_3R_100()) return true;
1957     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1958     Token xsp;
1959     while (true) {
1960       xsp = jj_scanpos;
1961       if (jj_3R_105()) { jj_scanpos = xsp; break; }
1962       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1963     }
1964     return false;
1965   }
1966
1967   final private boolean jj_3R_92() {
1968     if (jj_scan_token(FALSE)) return true;
1969     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1970     return false;
1971   }
1972
1973   final private boolean jj_3R_36() {
1974     if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true;
1975     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1976     return false;
1977   }
1978
1979   final private boolean jj_3R_91() {
1980     if (jj_scan_token(TRUE)) return true;
1981     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1982     return false;
1983   }
1984
1985   final private boolean jj_3R_84() {
1986     Token xsp;
1987     xsp = jj_scanpos;
1988     if (jj_3R_91()) {
1989     jj_scanpos = xsp;
1990     if (jj_3R_92()) return true;
1991     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1992     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1993     return false;
1994   }
1995
1996   final private boolean jj_3R_101() {
1997     if (jj_scan_token(BIT_OR)) return true;
1998     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1999     if (jj_3R_95()) return true;
2000     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2001     return false;
2002   }
2003
2004   final private boolean jj_3R_95() {
2005     if (jj_3R_98()) return true;
2006     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2007     Token xsp;
2008     while (true) {
2009       xsp = jj_scanpos;
2010       if (jj_3R_103()) { jj_scanpos = xsp; break; }
2011       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2012     }
2013     return false;
2014   }
2015
2016   final private boolean jj_3R_35() {
2017     if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
2018     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2019     return false;
2020   }
2021
2022   final private boolean jj_3R_80() {
2023     if (jj_3R_85()) return true;
2024     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2025     return false;
2026   }
2027
2028   final private boolean jj_3R_66() {
2029     if (jj_3R_69()) return true;
2030     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2031     return false;
2032   }
2033
2034   final private boolean jj_3R_79() {
2035     if (jj_3R_84()) return true;
2036     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2037     return false;
2038   }
2039
2040   final private boolean jj_3R_78() {
2041     if (jj_scan_token(STRING_LITERAL)) return true;
2042     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2043     return false;
2044   }
2045
2046   final private boolean jj_3R_99() {
2047     if (jj_scan_token(SC_AND)) return true;
2048     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2049     if (jj_3R_90()) return true;
2050     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2051     return false;
2052   }
2053
2054   final private boolean jj_3R_90() {
2055     if (jj_3R_95()) return true;
2056     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2057     Token xsp;
2058     while (true) {
2059       xsp = jj_scanpos;
2060       if (jj_3R_101()) { jj_scanpos = xsp; break; }
2061       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2062     }
2063     return false;
2064   }
2065
2066   final private boolean jj_3R_34() {
2067     if (jj_scan_token(LSHIFTASSIGN)) return true;
2068     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2069     return false;
2070   }
2071
2072   final private boolean jj_3R_65() {
2073     if (jj_scan_token(NEW)) return true;
2074     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2075     return false;
2076   }
2077
2078   final private boolean jj_3R_77() {
2079     if (jj_scan_token(CHARACTER_LITERAL)) return true;
2080     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2081     return false;
2082   }
2083
2084   final private boolean jj_3R_76() {
2085     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
2086     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2087     return false;
2088   }
2089
2090   final private boolean jj_3R_33() {
2091     if (jj_scan_token(MINUSASSIGN)) return true;
2092     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2093     return false;
2094   }
2095
2096   final private boolean jj_3R_69() {
2097     Token xsp;
2098     xsp = jj_scanpos;
2099     if (jj_3R_75()) {
2100     jj_scanpos = xsp;
2101     if (jj_3R_76()) {
2102     jj_scanpos = xsp;
2103     if (jj_3R_77()) {
2104     jj_scanpos = xsp;
2105     if (jj_3R_78()) {
2106     jj_scanpos = xsp;
2107     if (jj_3R_79()) {
2108     jj_scanpos = xsp;
2109     if (jj_3R_80()) return true;
2110     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2111     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2112     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2113     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2114     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2115     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2116     return false;
2117   }
2118
2119   final private boolean jj_3R_75() {
2120     if (jj_scan_token(INTEGER_LITERAL)) return true;
2121     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2122     return false;
2123   }
2124
2125   final private boolean jj_3R_96() {
2126     if (jj_scan_token(SC_OR)) return true;
2127     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2128     if (jj_3R_83()) return true;
2129     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2130     return false;
2131   }
2132
2133   final private boolean jj_3R_83() {
2134     if (jj_3R_90()) return true;
2135     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2136     Token xsp;
2137     while (true) {
2138       xsp = jj_scanpos;
2139       if (jj_3R_99()) { jj_scanpos = xsp; break; }
2140       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2141     }
2142     return false;
2143   }
2144
2145   final private boolean jj_3R_64() {
2146     if (jj_scan_token(SUPER)) return true;
2147     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2148     return false;
2149   }
2150
2151   final private boolean jj_3R_32() {
2152     if (jj_scan_token(PLUSASSIGN)) return true;
2153     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2154     return false;
2155   }
2156
2157   final private boolean jj_3R_73() {
2158     if (jj_3R_82()) return true;
2159     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2160     return false;
2161   }
2162
2163   final private boolean jj_3R_72() {
2164     if (jj_scan_token(DOT)) return true;
2165     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2166     if (jj_scan_token(IDENTIFIER)) return true;
2167     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2168     return false;
2169   }
2170
2171   final private boolean jj_3R_74() {
2172     if (jj_3R_83()) return true;
2173     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2174     Token xsp;
2175     while (true) {
2176       xsp = jj_scanpos;
2177       if (jj_3R_96()) { jj_scanpos = xsp; break; }
2178       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2179     }
2180     return false;
2181   }
2182
2183   final private boolean jj_3R_63() {
2184     if (jj_scan_token(THIS)) return true;
2185     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2186     return false;
2187   }
2188
2189   final private boolean jj_3R_31() {
2190     if (jj_scan_token(REMASSIGN)) return true;
2191     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2192     return false;
2193   }
2194
2195   final private boolean jj_3R_58() {
2196     Token xsp;
2197     xsp = jj_scanpos;
2198     if (jj_3R_71()) {
2199     jj_scanpos = xsp;
2200     if (jj_3R_72()) {
2201     jj_scanpos = xsp;
2202     if (jj_3R_73()) return true;
2203     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2204     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2205     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2206     return false;
2207   }
2208
2209   final private boolean jj_3R_71() {
2210     if (jj_scan_token(LBRACKET)) return true;
2211     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2212     if (jj_3R_25()) return true;
2213     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2214     if (jj_scan_token(RBRACKET)) return true;
2215     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2216     return false;
2217   }
2218
2219   final private boolean jj_3R_93() {
2220     if (jj_scan_token(HOOK)) return true;
2221     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2222     if (jj_3R_25()) return true;
2223     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2224     if (jj_scan_token(COLON)) return true;
2225     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2226     if (jj_3R_68()) return true;
2227     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2228     return false;
2229   }
2230
2231   final private boolean jj_3R_57() {
2232     if (jj_3R_70()) return true;
2233     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2234     return false;
2235   }
2236
2237   final private boolean jj_3R_30() {
2238     if (jj_scan_token(SLASHASSIGN)) return true;
2239     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2240     return false;
2241   }
2242
2243   final private boolean jj_3R_27() {
2244     if (jj_3R_58()) return true;
2245     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2246     return false;
2247   }
2248
2249   final private boolean jj_3R_56() {
2250     if (jj_scan_token(LPAREN)) return true;
2251     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2252     if (jj_3R_25()) return true;
2253     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2254     if (jj_scan_token(RPAREN)) return true;
2255     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2256     return false;
2257   }
2258
2259   final private boolean jj_3R_152() {
2260     if (jj_scan_token(LBRACKET)) return true;
2261     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2262     if (jj_scan_token(RBRACKET)) return true;
2263     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2264     return false;
2265   }
2266
2267   final private boolean jj_3R_55() {
2268     if (jj_scan_token(SUPER)) return true;
2269     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2270     if (jj_scan_token(DOT)) return true;
2271     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2272     if (jj_scan_token(IDENTIFIER)) return true;
2273     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2274     return false;
2275   }
2276
2277   final private boolean jj_3R_29() {
2278     if (jj_scan_token(STARASSIGN)) return true;
2279     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2280     return false;
2281   }
2282
2283   final private boolean jj_3R_68() {
2284     if (jj_3R_74()) return true;
2285     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2286     Token xsp;
2287     xsp = jj_scanpos;
2288     if (jj_3R_93()) jj_scanpos = xsp;
2289     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2290     return false;
2291   }
2292
2293   final private boolean jj_3R_54() {
2294     if (jj_scan_token(THIS)) return true;
2295     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2296     return false;
2297   }
2298
2299   final private boolean jj_3R_62() {
2300     if (jj_scan_token(IDENTIFIER)) return true;
2301     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2302     return false;
2303   }
2304
2305   final private boolean jj_3R_53() {
2306     if (jj_3R_24()) return true;
2307     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2308     return false;
2309   }
2310
2311   final private boolean jj_3R_153() {
2312     if (jj_scan_token(LBRACKET)) return true;
2313     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2314     if (jj_scan_token(RBRACKET)) return true;
2315     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2316     return false;
2317   }
2318
2319   final private boolean jj_3R_26() {
2320     Token xsp;
2321     xsp = jj_scanpos;
2322     if (jj_3R_52()) {
2323     jj_scanpos = xsp;
2324     if (jj_3R_53()) {
2325     jj_scanpos = xsp;
2326     if (jj_3R_54()) {
2327     jj_scanpos = xsp;
2328     if (jj_3R_55()) {
2329     jj_scanpos = xsp;
2330     if (jj_3R_56()) {
2331     jj_scanpos = xsp;
2332     if (jj_3R_57()) return true;
2333     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2334     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2335     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2336     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2337     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2338     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2339     return false;
2340   }
2341
2342   final private boolean jj_3R_52() {
2343     if (jj_3R_69()) return true;
2344     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2345     return false;
2346   }
2347
2348   final private boolean jj_3R_21() {
2349     Token xsp;
2350     xsp = jj_scanpos;
2351     if (jj_3R_28()) {
2352     jj_scanpos = xsp;
2353     if (jj_3R_29()) {
2354     jj_scanpos = xsp;
2355     if (jj_3R_30()) {
2356     jj_scanpos = xsp;
2357     if (jj_3R_31()) {
2358     jj_scanpos = xsp;
2359     if (jj_3R_32()) {
2360     jj_scanpos = xsp;
2361     if (jj_3R_33()) {
2362     jj_scanpos = xsp;
2363     if (jj_3R_34()) {
2364     jj_scanpos = xsp;
2365     if (jj_3R_35()) {
2366     jj_scanpos = xsp;
2367     if (jj_3R_36()) {
2368     jj_scanpos = xsp;
2369     if (jj_3R_37()) {
2370     jj_scanpos = xsp;
2371     if (jj_3R_38()) {
2372     jj_scanpos = xsp;
2373     if (jj_3R_39()) return true;
2374     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2375     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2376     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2377     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2378     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2379     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2380     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2381     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2382     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2383     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2384     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2385     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2386     return false;
2387   }
2388
2389   final private boolean jj_3R_28() {
2390     if (jj_scan_token(ASSIGN)) return true;
2391     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2392     return false;
2393   }
2394
2395   final private boolean jj_3R_61() {
2396     if (jj_scan_token(LPAREN)) return true;
2397     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2398     return false;
2399   }
2400
2401   final private boolean jj_3_2() {
2402     if (jj_3R_20()) return true;
2403     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2404     if (jj_3R_21()) return true;
2405     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2406     return false;
2407   }
2408
2409   final private boolean jj_3R_20() {
2410     if (jj_3R_26()) return true;
2411     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2412     Token xsp;
2413     while (true) {
2414       xsp = jj_scanpos;
2415       if (jj_3R_27()) { jj_scanpos = xsp; break; }
2416       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2417     }
2418     return false;
2419   }
2420
2421   final private boolean jj_3R_60() {
2422     if (jj_scan_token(BANG)) return true;
2423     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2424     return false;
2425   }
2426
2427   final private boolean jj_3R_155() {
2428     if (jj_scan_token(DECR)) return true;
2429     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2430     return false;
2431   }
2432
2433   final private boolean jj_3R_67() {
2434     if (jj_3R_20()) return true;
2435     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2436     if (jj_3R_21()) return true;
2437     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2438     if (jj_3R_25()) return true;
2439     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2440     return false;
2441   }
2442
2443   final private boolean jj_3R_150() {
2444     if (jj_scan_token(LPAREN)) return true;
2445     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2446     if (jj_3R_24()) return true;
2447     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2448     Token xsp;
2449     while (true) {
2450       xsp = jj_scanpos;
2451       if (jj_3R_153()) { jj_scanpos = xsp; break; }
2452       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2453     }
2454     if (jj_scan_token(RPAREN)) return true;
2455     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2456     if (jj_3R_136()) return true;
2457     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2458     return false;
2459   }
2460
2461   final private boolean jj_3R_59() {
2462     if (jj_scan_token(TILDE)) return true;
2463     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2464     return false;
2465   }
2466
2467   final private boolean jj_3R_51() {
2468     if (jj_3R_68()) return true;
2469     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2470     return false;
2471   }
2472
2473   public ExpressionParserTokenManager token_source;
2474   ASCII_UCodeESC_CharStream jj_input_stream;
2475   public Token token, jj_nt;
2476   private int jj_ntk;
2477   private Token jj_scanpos, jj_lastpos;
2478   private int jj_la;
2479   public boolean lookingAhead = false;
2480   private boolean jj_semLA;
2481   private int jj_gen;
2482   final private int[] jj_la1 = new int[44];
2483   final private int[] jj_la1_0 = {0x8209400,0x0,0x8209400,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x1000000,0x1000000,0x0,0x0,0x0,};
2484   final private int[] jj_la1_1 = {0x2014,0x0,0x2014,0x0,0x884480c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x884480c0,0x0,0x0,0x884480c0,0x884480c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x884480c0,0x0,0x88400080,0x400000,0x884480c0,0x0,0x0,0x40,};
2485   final private int[] jj_la1_2 = {0x8,0x400,0x0,0x2000,0xf00c004e,0x8000,0x100000,0x4000000,0x8000000,0x0,0x0,0x0,0x2400000,0x2400000,0x0,0x1830000,0x1830000,0x0,0x0,0xc0000000,0xc0000000,0x0,0x0,0xc0000000,0xf00c004e,0xc0000,0xc0000,0x4e,0xc004e,0x40,0x30000000,0x30000000,0x400,0x400,0x40,0x4440,0x4e,0x4440,0x6,0x0,0xf00c004e,0x2000,0x440,0x0,};
2486   final private int[] jj_la1_3 = {0x0,0x0,0x0,0x0,0x0,0xffe00,0x0,0x0,0x0,0x8,0x10,0x4,0x0,0x0,0x0,0x0,0x0,0x1c0,0x1c0,0x0,0x0,0x23,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
2487   final private JJExpressionParserCalls[] jj_2_rtns = new JJExpressionParserCalls[9];
2488   private boolean jj_rescan = false;
2489   private int jj_gc = 0;
2490
2491   public ExpressionParser(java.io.InputStream stream) {
2492     jj_input_stream = new ASCII_UCodeESC_CharStream(stream, 1, 1);
2493     token_source = new ExpressionParserTokenManager(jj_input_stream);
2494     token = new Token();
2495     jj_ntk = -1;
2496     jj_gen = 0;
2497     for (int i = 0; i < 44; i++) jj_la1[i] = -1;
2498     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls();
2499   }
2500
2501   public void ReInit(java.io.InputStream stream) {
2502     jj_input_stream.ReInit(stream, 1, 1);
2503     token_source.ReInit(jj_input_stream);
2504     token = new Token();
2505     jj_ntk = -1;
2506     jj_gen = 0;
2507     for (int i = 0; i < 44; i++) jj_la1[i] = -1;
2508     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls();
2509   }
2510
2511   public ExpressionParser(ExpressionParserTokenManager tm) {
2512     token_source = tm;
2513     token = new Token();
2514     jj_ntk = -1;
2515     jj_gen = 0;
2516     for (int i = 0; i < 44; i++) jj_la1[i] = -1;
2517     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls();
2518   }
2519
2520   public void ReInit(ExpressionParserTokenManager tm) {
2521     token_source = tm;
2522     token = new Token();
2523     jj_ntk = -1;
2524     jj_gen = 0;
2525     for (int i = 0; i < 44; i++) jj_la1[i] = -1;
2526     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls();
2527   }
2528
2529   final private Token jj_consume_token(int kind) throws ParseException {
2530     Token oldToken;
2531     if ((oldToken = token).next != null) token = token.next;
2532     else token = token.next = token_source.getNextToken();
2533     jj_ntk = -1;
2534     if (token.kind == kind) {
2535       jj_gen++;
2536       if (++jj_gc > 100) {
2537         jj_gc = 0;
2538         for (int i = 0; i < jj_2_rtns.length; i++) {
2539           JJExpressionParserCalls c = jj_2_rtns[i];
2540           while (c != null) {
2541             if (c.gen < jj_gen) c.first = null;
2542             c = c.next;
2543           }
2544         }
2545       }
2546       return token;
2547     }
2548     token = oldToken;
2549     jj_kind = kind;
2550     throw generateParseException();
2551   }
2552
2553   final private boolean jj_scan_token(int kind) {
2554     if (jj_scanpos == jj_lastpos) {
2555       jj_la--;
2556       if (jj_scanpos.next == null) {
2557         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
2558       } else {
2559         jj_lastpos = jj_scanpos = jj_scanpos.next;
2560       }
2561     } else {
2562       jj_scanpos = jj_scanpos.next;
2563     }
2564     if (jj_rescan) {
2565       int i = 0; Token tok = token;
2566       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
2567       if (tok != null) jj_add_error_token(kind, i);
2568     }
2569     return (jj_scanpos.kind != kind);
2570   }
2571
2572   final public Token getNextToken() {
2573     if (token.next != null) token = token.next;
2574     else token = token.next = token_source.getNextToken();
2575     jj_ntk = -1;
2576     jj_gen++;
2577     return token;
2578   }
2579
2580   final public Token getToken(int index) {
2581     Token t = lookingAhead ? jj_scanpos : token;
2582     for (int i = 0; i < index; i++) {
2583       if (t.next != null) t = t.next;
2584       else t = t.next = token_source.getNextToken();
2585     }
2586     return t;
2587   }
2588
2589   final private int jj_ntk() {
2590     if ((jj_nt=token.next) == null)
2591       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
2592     else
2593       return (jj_ntk = jj_nt.kind);
2594   }
2595
2596   private java.util.Vector jj_expentries = new java.util.Vector();
2597   private int[] jj_expentry;
2598   private int jj_kind = -1;
2599   private int[] jj_lasttokens = new int[100];
2600   private int jj_endpos;
2601
2602   private void jj_add_error_token(int kind, int pos) {
2603     if (pos >= 100) return;
2604     if (pos == jj_endpos + 1) {
2605       jj_lasttokens[jj_endpos++] = kind;
2606     } else if (jj_endpos != 0) {
2607       jj_expentry = new int[jj_endpos];
2608       for (int i = 0; i < jj_endpos; i++) {
2609         jj_expentry[i] = jj_lasttokens[i];
2610       }
2611       boolean exists = false;
2612       for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
2613         int[] oldentry = (int[])(enum.nextElement());
2614         if (oldentry.length == jj_expentry.length) {
2615           exists = true;
2616           for (int i = 0; i < jj_expentry.length; i++) {
2617             if (oldentry[i] != jj_expentry[i]) {
2618               exists = false;
2619               break;
2620             }
2621           }
2622           if (exists) break;
2623         }
2624       }
2625       if (!exists) jj_expentries.addElement(jj_expentry);
2626       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
2627     }
2628   }
2629
2630   final public ParseException generateParseException() {
2631     jj_expentries.removeAllElements();
2632     boolean[] la1tokens = new boolean[116];
2633     for (int i = 0; i < 116; i++) {
2634       la1tokens[i] = false;
2635     }
2636     if (jj_kind >= 0) {
2637       la1tokens[jj_kind] = true;
2638       jj_kind = -1;
2639     }
2640     for (int i = 0; i < 44; i++) {
2641       if (jj_la1[i] == jj_gen) {
2642         for (int j = 0; j < 32; j++) {
2643           if ((jj_la1_0[i] & (1<<j)) != 0) {
2644             la1tokens[j] = true;
2645           }
2646           if ((jj_la1_1[i] & (1<<j)) != 0) {
2647             la1tokens[32+j] = true;
2648           }
2649           if ((jj_la1_2[i] & (1<<j)) != 0) {
2650             la1tokens[64+j] = true;
2651           }
2652           if ((jj_la1_3[i] & (1<<j)) != 0) {
2653             la1tokens[96+j] = true;
2654           }
2655         }
2656       }
2657     }
2658     for (int i = 0; i < 116; i++) {
2659       if (la1tokens[i]) {
2660         jj_expentry = new int[1];
2661         jj_expentry[0] = i;
2662         jj_expentries.addElement(jj_expentry);
2663       }
2664     }
2665     jj_endpos = 0;
2666     jj_rescan_token();
2667     jj_add_error_token(0, 0);
2668     int[][] exptokseq = new int[jj_expentries.size()][];
2669     for (int i = 0; i < jj_expentries.size(); i++) {
2670       exptokseq[i] = (int[])jj_expentries.elementAt(i);
2671     }
2672     return new ParseException(token, exptokseq, tokenImage);
2673   }
2674
2675   final public void enable_tracing() {
2676   }
2677
2678   final public void disable_tracing() {
2679   }
2680
2681   final private void jj_rescan_token() {
2682     jj_rescan = true;
2683     for (int i = 0; i < 9; i++) {
2684       JJExpressionParserCalls p = jj_2_rtns[i];
2685       do {
2686         if (p.gen > jj_gen) {
2687           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
2688           switch (i) {
2689             case 0: jj_3_1(); break;
2690             case 1: jj_3_2(); break;
2691             case 2: jj_3_3(); break;
2692             case 3: jj_3_4(); break;
2693             case 4: jj_3_5(); break;
2694             case 5: jj_3_6(); break;
2695             case 6: jj_3_7(); break;
2696             case 7: jj_3_8(); break;
2697             case 8: jj_3_9(); break;
2698           }
2699         }
2700         p = p.next;
2701       } while (p != null);
2702     }
2703     jj_rescan = false;
2704   }
2705
2706   final private void jj_save(int index, int xla) {
2707     JJExpressionParserCalls p = jj_2_rtns[index];
2708     while (p.gen > jj_gen) {
2709       if (p.next == null) { p = p.next = new JJExpressionParserCalls(); break; }
2710       p = p.next;
2711     }
2712     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
2713   }
2714
2715 }
2716
2717 final class JJExpressionParserCalls {
2718   int gen;
2719   Token first;
2720   int arg;
2721   JJExpressionParserCalls next;
2722 }