KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > tools > example > debug > expr > ExpressionParser


1 /*
2  * @(#)ExpressionParser.java 1.11 05/11/17
3  *
4  * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
5  * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
6  */

7
8 /* Generated By:JavaCC: Do not edit this line. ExpressionParser.java */
9 package com.sun.tools.example.debug.expr;
10
11 import com.sun.jdi.*;
12 import java.util.Stack JavaDoc;
13 import java.util.List JavaDoc;
14 import java.util.ArrayList JavaDoc;
15
16 public class ExpressionParser implements ExpressionParserConstants {
17
18   Stack JavaDoc stack = new Stack JavaDoc();
19   VirtualMachine vm = null;
20   GetFrame frameGetter = null;
21   private static GetFrame lastFrameGetter;
22   private static LValue lastLValue;
23
24   LValue peek() {
25     return (LValue)stack.peek();
26   }
27
28   LValue pop() {
29     return (LValue)stack.pop();
30   }
31
32   void push(LValue lval) {
33     stack.push(lval);
34   }
35
36   public static Value getMassagedValue() throws ParseException {
37        return lastLValue.getMassagedValue(lastFrameGetter);
38   }
39
40   public interface GetFrame {
41         StackFrame get() throws IncompatibleThreadStateException;
42   }
43
44   public static Value evaluate(String JavaDoc expr, VirtualMachine vm,
45                                GetFrame frameGetter) throws ParseException,
46                                             InvocationException,
47                                             InvalidTypeException,
48                                             ClassNotLoadedException,
49                                             IncompatibleThreadStateException {
50         // TODO StringBufferInputStream is deprecated.
51
java.io.InputStream JavaDoc in = new java.io.StringBufferInputStream JavaDoc(expr);
52         ExpressionParser parser = new ExpressionParser(in);
53         parser.vm = vm;
54         parser.frameGetter = frameGetter;
55         Value value = null;
56         parser.Expression();
57     lastFrameGetter = frameGetter;
58     lastLValue = parser.pop();
59     return lastLValue.getValue();
60   }
61
62   public static void main(String JavaDoc args[]) {
63     ExpressionParser parser;
64     System.out.print("Java Expression Parser: ");
65     if (args.length == 0) {
66       System.out.println("Reading from standard input . . .");
67       parser = new ExpressionParser(System.in);
68     } else if (args.length == 1) {
69       System.out.println("Reading from file " + args[0] + " . . .");
70       try {
71         parser = new ExpressionParser(new java.io.FileInputStream JavaDoc(args[0]));
72       } catch (java.io.FileNotFoundException JavaDoc e) {
73         System.out.println("Java Parser Version 1.0.2: File " +
74                            args[0] + " not found.");
75         return;
76       }
77     } else {
78       System.out.println("Usage is one of:");
79       System.out.println(" java ExpressionParser < inputfile");
80       System.out.println("OR");
81       System.out.println(" java ExpressionParser inputfile");
82       return;
83     }
84     try {
85         parser.Expression();
86         System.out.print("Java Expression Parser: ");
87         System.out.println("Java program parsed successfully.");
88     } catch (ParseException e) {
89         System.out.print("Java Expression Parser: ");
90         System.out.println("Encountered errors during parse.");
91     }
92   }
93
94 /*****************************************
95  * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
96  *****************************************/

97
98 /*
99  * Type, name and expression syntax follows.
100  */

101   final public void Type() throws ParseException {
102     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
103     case BOOLEAN:
104     case BYTE:
105     case CHAR:
106     case DOUBLE:
107     case FLOAT:
108     case INT:
109     case LONG:
110     case SHORT:
111       PrimitiveType();
112       break;
113     case IDENTIFIER:
114       Name();
115       break;
116     default:
117       jj_la1[0] = jj_gen;
118       jj_consume_token(-1);
119       throw new ParseException();
120     }
121     label_1:
122     while (true) {
123       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
124       case LBRACKET:
125         ;
126         break;
127       default:
128         jj_la1[1] = jj_gen;
129         break label_1;
130       }
131       jj_consume_token(LBRACKET);
132       jj_consume_token(RBRACKET);
133     }
134   }
135
136   final public void PrimitiveType() throws ParseException {
137     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
138     case BOOLEAN:
139       jj_consume_token(BOOLEAN);
140       break;
141     case CHAR:
142       jj_consume_token(CHAR);
143       break;
144     case BYTE:
145       jj_consume_token(BYTE);
146       break;
147     case SHORT:
148       jj_consume_token(SHORT);
149       break;
150     case INT:
151       jj_consume_token(INT);
152       break;
153     case LONG:
154       jj_consume_token(LONG);
155       break;
156     case FLOAT:
157       jj_consume_token(FLOAT);
158       break;
159     case DOUBLE:
160       jj_consume_token(DOUBLE);
161       break;
162     default:
163       jj_la1[2] = jj_gen;
164       jj_consume_token(-1);
165       throw new ParseException();
166     }
167   }
168
169   final public String JavaDoc Name() throws ParseException {
170  StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
171     jj_consume_token(IDENTIFIER);
172                  sb.append(token);
173     label_2:
174     while (true) {
175       if (jj_2_1(2)) {
176         ;
177       } else {
178         break label_2;
179       }
180       jj_consume_token(DOT);
181       jj_consume_token(IDENTIFIER);
182                                     sb.append('.'); sb.append(token);
183     }
184           {if (true) return sb.toString();}
185     throw new Error JavaDoc("Missing return statement in function");
186   }
187
188   final public void NameList() throws ParseException {
189     Name();
190     label_3:
191     while (true) {
192       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
193       case COMMA:
194         ;
195         break;
196       default:
197         jj_la1[3] = jj_gen;
198         break label_3;
199       }
200       jj_consume_token(COMMA);
201       Name();
202     }
203   }
204
205 /*
206  * Expression syntax follows.
207  */

208   final public void Expression() throws ParseException {
209     if (jj_2_2(2147483647)) {
210       Assignment();
211     } else {
212       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
213       case FALSE:
214       case NEW:
215       case NULL:
216       case SUPER:
217       case THIS:
218       case TRUE:
219       case INTEGER_LITERAL:
220       case FLOATING_POINT_LITERAL:
221       case CHARACTER_LITERAL:
222       case STRING_LITERAL:
223       case IDENTIFIER:
224       case LPAREN:
225       case BANG:
226       case TILDE:
227       case INCR:
228       case DECR:
229       case PLUS:
230       case MINUS:
231         ConditionalExpression();
232         break;
233       default:
234         jj_la1[4] = jj_gen;
235         jj_consume_token(-1);
236         throw new ParseException();
237       }
238     }
239   }
240
241   final public void Assignment() throws ParseException {
242     PrimaryExpression();
243     AssignmentOperator();
244     Expression();
245           LValue exprVal = pop(); pop().setValue(exprVal); push(exprVal);
246   }
247
248   final public void AssignmentOperator() throws ParseException {
249     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
250     case ASSIGN:
251       jj_consume_token(ASSIGN);
252       break;
253     case STARASSIGN:
254       jj_consume_token(STARASSIGN);
255       break;
256     case SLASHASSIGN:
257       jj_consume_token(SLASHASSIGN);
258       break;
259     case REMASSIGN:
260       jj_consume_token(REMASSIGN);
261       break;
262     case PLUSASSIGN:
263       jj_consume_token(PLUSASSIGN);
264       break;
265     case MINUSASSIGN:
266       jj_consume_token(MINUSASSIGN);
267       break;
268     case LSHIFTASSIGN:
269       jj_consume_token(LSHIFTASSIGN);
270       break;
271     case RSIGNEDSHIFTASSIGN:
272       jj_consume_token(RSIGNEDSHIFTASSIGN);
273       break;
274     case RUNSIGNEDSHIFTASSIGN:
275       jj_consume_token(RUNSIGNEDSHIFTASSIGN);
276       break;
277     case ANDASSIGN:
278       jj_consume_token(ANDASSIGN);
279       break;
280     case XORASSIGN:
281       jj_consume_token(XORASSIGN);
282       break;
283     case ORASSIGN:
284       jj_consume_token(ORASSIGN);
285       break;
286     default:
287       jj_la1[5] = jj_gen;
288       jj_consume_token(-1);
289       throw new ParseException();
290     }
291   }
292
293   final public void ConditionalExpression() throws ParseException {
294     ConditionalOrExpression();
295     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
296     case HOOK:
297       jj_consume_token(HOOK);
298       Expression();
299       jj_consume_token(COLON);
300       ConditionalExpression();
301                   LValue falseBranch = pop(); LValue trueBranch = pop();
302                   Value cond = pop().interiorGetValue();
303                   if (cond instanceof BooleanValue) {
304                         push(((BooleanValue)cond).booleanValue()?
305                                         trueBranch : falseBranch);
306                   } else {
307                         {if (true) throw new ParseException("Condition must be boolean");}
308                   }
309       break;
310     default:
311       jj_la1[6] = jj_gen;
312       ;
313     }
314   }
315
316   final public void ConditionalOrExpression() throws ParseException {
317     ConditionalAndExpression();
318     label_4:
319     while (true) {
320       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
321       case SC_OR:
322         ;
323         break;
324       default:
325         jj_la1[7] = jj_gen;
326         break label_4;
327       }
328       jj_consume_token(SC_OR);
329       ConditionalAndExpression();
330                           {if (true) throw new ParseException("operation not yet supported");}
331     }
332   }
333
334   final public void ConditionalAndExpression() throws ParseException {
335     InclusiveOrExpression();
336     label_5:
337     while (true) {
338       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
339       case SC_AND:
340         ;
341         break;
342       default:
343         jj_la1[8] = jj_gen;
344         break label_5;
345       }
346       jj_consume_token(SC_AND);
347       InclusiveOrExpression();
348                           {if (true) throw new ParseException("operation not yet supported");}
349     }
350   }
351
352   final public void InclusiveOrExpression() throws ParseException {
353     ExclusiveOrExpression();
354     label_6:
355     while (true) {
356       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
357       case BIT_OR:
358         ;
359         break;
360       default:
361         jj_la1[9] = jj_gen;
362         break label_6;
363       }
364       jj_consume_token(BIT_OR);
365       ExclusiveOrExpression();
366                           {if (true) throw new ParseException("operation not yet supported");}
367     }
368   }
369
370   final public void ExclusiveOrExpression() throws ParseException {
371     AndExpression();
372     label_7:
373     while (true) {
374       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
375       case XOR:
376         ;
377         break;
378       default:
379         jj_la1[10] = jj_gen;
380         break label_7;
381       }
382       jj_consume_token(XOR);
383       AndExpression();
384                           {if (true) throw new ParseException("operation not yet supported");}
385     }
386   }
387
388   final public void AndExpression() throws ParseException {
389     EqualityExpression();
390     label_8:
391     while (true) {
392       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
393       case BIT_AND:
394         ;
395         break;
396       default:
397         jj_la1[11] = jj_gen;
398         break label_8;
399       }
400       jj_consume_token(BIT_AND);
401       EqualityExpression();
402                           {if (true) throw new ParseException("operation not yet supported");}
403     }
404   }
405
406   final public void EqualityExpression() throws ParseException {
407  Token tok;
408     InstanceOfExpression();
409     label_9:
410     while (true) {
411       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
412       case EQ:
413       case NE:
414         ;
415         break;
416       default:
417         jj_la1[12] = jj_gen;
418         break label_9;
419       }
420       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
421       case EQ:
422         tok = jj_consume_token(EQ);
423         break;
424       case NE:
425         tok = jj_consume_token(NE);
426         break;
427       default:
428         jj_la1[13] = jj_gen;
429         jj_consume_token(-1);
430         throw new ParseException();
431       }
432       InstanceOfExpression();
433                   LValue left = pop();
434                   push( LValue.booleanOperation(vm, tok, pop(), left) );
435     }
436   }
437
438   final public void InstanceOfExpression() throws ParseException {
439     RelationalExpression();
440     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
441     case INSTANCEOF:
442       jj_consume_token(INSTANCEOF);
443       Type();
444                           {if (true) throw new ParseException("operation not yet supported");}
445       break;
446     default:
447       jj_la1[14] = jj_gen;
448       ;
449     }
450   }
451
452   final public void RelationalExpression() throws ParseException {
453  Token tok;
454     ShiftExpression();
455     label_10:
456     while (true) {
457       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
458       case GT:
459       case LT:
460       case LE:
461       case GE:
462         ;
463         break;
464       default:
465         jj_la1[15] = jj_gen;
466         break label_10;
467       }
468       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
469       case LT:
470         tok = jj_consume_token(LT);
471         break;
472       case GT:
473         tok = jj_consume_token(GT);
474         break;
475       case LE:
476         tok = jj_consume_token(LE);
477         break;
478       case GE:
479         tok = jj_consume_token(GE);
480         break;
481       default:
482         jj_la1[16] = jj_gen;
483         jj_consume_token(-1);
484         throw new ParseException();
485       }
486       ShiftExpression();
487                   LValue left = pop();
488                   push( LValue.booleanOperation(vm, tok, pop(), left) );
489     }
490   }
491
492   final public void ShiftExpression() throws ParseException {
493     AdditiveExpression();
494     label_11:
495     while (true) {
496       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
497       case LSHIFT:
498       case RSIGNEDSHIFT:
499       case RUNSIGNEDSHIFT:
500         ;
501         break;
502       default:
503         jj_la1[17] = jj_gen;
504         break label_11;
505       }
506       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
507       case LSHIFT:
508         jj_consume_token(LSHIFT);
509         break;
510       case RSIGNEDSHIFT:
511         jj_consume_token(RSIGNEDSHIFT);
512         break;
513       case RUNSIGNEDSHIFT:
514         jj_consume_token(RUNSIGNEDSHIFT);
515         break;
516       default:
517         jj_la1[18] = jj_gen;
518         jj_consume_token(-1);
519         throw new ParseException();
520       }
521       AdditiveExpression();
522                           {if (true) throw new ParseException("operation not yet supported");}
523     }
524   }
525
526   final public void AdditiveExpression() throws ParseException {
527  Token tok;
528     MultiplicativeExpression();
529     label_12:
530     while (true) {
531       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
532       case PLUS:
533       case MINUS:
534         ;
535         break;
536       default:
537         jj_la1[19] = jj_gen;
538         break label_12;
539       }
540       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
541       case PLUS:
542         tok = jj_consume_token(PLUS);
543         break;
544       case MINUS:
545         tok = jj_consume_token(MINUS);
546         break;
547       default:
548         jj_la1[20] = jj_gen;
549         jj_consume_token(-1);
550         throw new ParseException();
551       }
552       MultiplicativeExpression();
553                   LValue left = pop();
554                   push( LValue.operation(vm, tok, pop(), left, frameGetter) );
555     }
556   }
557
558   final public void MultiplicativeExpression() throws ParseException {
559  Token tok;
560     UnaryExpression();
561     label_13:
562     while (true) {
563       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
564       case STAR:
565       case SLASH:
566       case REM:
567         ;
568         break;
569       default:
570         jj_la1[21] = jj_gen;
571         break label_13;
572       }
573       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
574       case STAR:
575         tok = jj_consume_token(STAR);
576         break;
577       case SLASH:
578         tok = jj_consume_token(SLASH);
579         break;
580       case REM:
581         tok = jj_consume_token(REM);
582         break;
583       default:
584         jj_la1[22] = jj_gen;
585         jj_consume_token(-1);
586         throw new ParseException();
587       }
588       UnaryExpression();
589                   LValue left = pop();
590                   push( LValue.operation(vm, tok, pop(), left, frameGetter) );
591     }
592   }
593
594   final public void UnaryExpression() throws ParseException {
595     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
596     case PLUS:
597     case MINUS:
598       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
599       case PLUS:
600         jj_consume_token(PLUS);
601         break;
602       case MINUS:
603         jj_consume_token(MINUS);
604         break;
605       default:
606         jj_la1[23] = jj_gen;
607         jj_consume_token(-1);
608         throw new ParseException();
609       }
610       UnaryExpression();
611                           {if (true) throw new ParseException("operation not yet supported");}
612       break;
613     case INCR:
614       PreIncrementExpression();
615       break;
616     case DECR:
617       PreDecrementExpression();
618       break;
619     case FALSE:
620     case NEW:
621     case NULL:
622     case SUPER:
623     case THIS:
624     case TRUE:
625     case INTEGER_LITERAL:
626     case FLOATING_POINT_LITERAL:
627     case CHARACTER_LITERAL:
628     case STRING_LITERAL:
629     case IDENTIFIER:
630     case LPAREN:
631     case BANG:
632     case TILDE:
633       UnaryExpressionNotPlusMinus();
634       break;
635     default:
636       jj_la1[24] = jj_gen;
637       jj_consume_token(-1);
638       throw new ParseException();
639     }
640   }
641
642   final public void PreIncrementExpression() throws ParseException {
643     jj_consume_token(INCR);
644     PrimaryExpression();
645                           {if (true) throw new ParseException("operation not yet supported");}
646   }
647
648   final public void PreDecrementExpression() throws ParseException {
649     jj_consume_token(DECR);
650     PrimaryExpression();
651                           {if (true) throw new ParseException("operation not yet supported");}
652   }
653
654   final public void UnaryExpressionNotPlusMinus() throws ParseException {
655     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
656     case BANG:
657     case TILDE:
658       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
659       case TILDE:
660         jj_consume_token(TILDE);
661         break;
662       case BANG:
663         jj_consume_token(BANG);
664         break;
665       default:
666         jj_la1[25] = jj_gen;
667         jj_consume_token(-1);
668         throw new ParseException();
669       }
670       UnaryExpression();
671                           {if (true) throw new ParseException("operation not yet supported");}
672       break;
673     default:
674       jj_la1[26] = jj_gen;
675       if (jj_2_3(2147483647)) {
676         CastExpression();
677       } else {
678         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
679         case FALSE:
680         case NEW:
681         case NULL:
682         case SUPER:
683         case THIS:
684         case TRUE:
685         case INTEGER_LITERAL:
686         case FLOATING_POINT_LITERAL:
687         case CHARACTER_LITERAL:
688         case STRING_LITERAL:
689         case IDENTIFIER:
690         case LPAREN:
691           PostfixExpression();
692           break;
693         default:
694           jj_la1[27] = jj_gen;
695           jj_consume_token(-1);
696           throw new ParseException();
697         }
698       }
699     }
700   }
701
702 // This production is to determine lookahead only. The LOOKAHEAD specifications
703
// below are not used, but they are there just to indicate that we know about
704
// this.
705
final public void CastLookahead() throws ParseException {
706     if (jj_2_4(2)) {
707       jj_consume_token(LPAREN);
708       PrimitiveType();
709     } else if (jj_2_5(2147483647)) {
710       jj_consume_token(LPAREN);
711       Name();
712       jj_consume_token(LBRACKET);
713       jj_consume_token(RBRACKET);
714     } else {
715       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
716       case LPAREN:
717         jj_consume_token(LPAREN);
718         Name();
719         jj_consume_token(RPAREN);
720         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
721         case TILDE:
722           jj_consume_token(TILDE);
723           break;
724         case BANG:
725           jj_consume_token(BANG);
726           break;
727         case LPAREN:
728           jj_consume_token(LPAREN);
729           break;
730         case IDENTIFIER:
731           jj_consume_token(IDENTIFIER);
732           break;
733         case THIS:
734           jj_consume_token(THIS);
735           break;
736         case SUPER:
737           jj_consume_token(SUPER);
738           break;
739         case NEW:
740           jj_consume_token(NEW);
741           break;
742         case FALSE:
743         case NULL:
744         case TRUE:
745         case INTEGER_LITERAL:
746         case FLOATING_POINT_LITERAL:
747         case CHARACTER_LITERAL:
748         case STRING_LITERAL:
749           Literal();
750           break;
751         default:
752           jj_la1[28] = jj_gen;
753           jj_consume_token(-1);
754           throw new ParseException();
755         }
756         break;
757       default:
758         jj_la1[29] = jj_gen;
759         jj_consume_token(-1);
760         throw new ParseException();
761       }
762     }
763   }
764
765   final public void PostfixExpression() throws ParseException {
766     PrimaryExpression();
767     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
768     case INCR:
769     case DECR:
770       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
771       case INCR:
772         jj_consume_token(INCR);
773         break;
774       case DECR:
775         jj_consume_token(DECR);
776                           {if (true) throw new ParseException("operation not yet supported");}
777         break;
778       default:
779         jj_la1[30] = jj_gen;
780         jj_consume_token(-1);
781         throw new ParseException();
782       }
783       break;
784     default:
785       jj_la1[31] = jj_gen;
786       ;
787     }
788   }
789
790   final public void CastExpression() throws ParseException {
791     if (jj_2_6(2)) {
792       jj_consume_token(LPAREN);
793       PrimitiveType();
794       label_14:
795       while (true) {
796         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
797         case LBRACKET:
798           ;
799           break;
800         default:
801           jj_la1[32] = jj_gen;
802           break label_14;
803         }
804         jj_consume_token(LBRACKET);
805         jj_consume_token(RBRACKET);
806       }
807       jj_consume_token(RPAREN);
808       UnaryExpression();
809     } else {
810       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
811       case LPAREN:
812         jj_consume_token(LPAREN);
813         Name();
814         label_15:
815         while (true) {
816           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
817           case LBRACKET:
818             ;
819             break;
820           default:
821             jj_la1[33] = jj_gen;
822             break label_15;
823           }
824           jj_consume_token(LBRACKET);
825           jj_consume_token(RBRACKET);
826         }
827         jj_consume_token(RPAREN);
828         UnaryExpressionNotPlusMinus();
829         break;
830       default:
831         jj_la1[34] = jj_gen;
832         jj_consume_token(-1);
833         throw new ParseException();
834       }
835     }
836   }
837
838   final public void PrimaryExpression() throws ParseException {
839     PrimaryPrefix();
840     label_16:
841     while (true) {
842       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
843       case LPAREN:
844       case LBRACKET:
845       case DOT:
846         ;
847         break;
848       default:
849         jj_la1[35] = jj_gen;
850         break label_16;
851       }
852       PrimarySuffix();
853     }
854   }
855
856   final public void PrimaryPrefix() throws ParseException {
857  String JavaDoc name;
858     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
859     case FALSE:
860     case NULL:
861     case TRUE:
862     case INTEGER_LITERAL:
863     case FLOATING_POINT_LITERAL:
864     case CHARACTER_LITERAL:
865     case STRING_LITERAL:
866       Literal();
867       break;
868     case IDENTIFIER:
869       name = Name();
870                           push(LValue.makeName(vm, frameGetter, name));
871       break;
872     case THIS:
873       jj_consume_token(THIS);
874                           push(LValue.makeThisObject(vm, frameGetter, token));
875       break;
876     case SUPER:
877       jj_consume_token(SUPER);
878       jj_consume_token(DOT);
879       jj_consume_token(IDENTIFIER);
880                           {if (true) throw new ParseException("operation not yet supported");}
881       break;
882     case LPAREN:
883       jj_consume_token(LPAREN);
884       Expression();
885       jj_consume_token(RPAREN);
886       break;
887     case NEW:
888       AllocationExpression();
889       break;
890     default:
891       jj_la1[36] = jj_gen;
892       jj_consume_token(-1);
893       throw new ParseException();
894     }
895   }
896
897   final public void PrimarySuffix() throws ParseException {
898  List JavaDoc argList;
899     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
900     case LBRACKET:
901       jj_consume_token(LBRACKET);
902       Expression();
903       jj_consume_token(RBRACKET);
904                           LValue index = pop();
905                           push(pop().arrayElementLValue(index));
906       break;
907     case DOT:
908       jj_consume_token(DOT);
909       jj_consume_token(IDENTIFIER);
910                           push(pop().memberLValue(frameGetter, token.image));
911       break;
912     case LPAREN:
913       argList = Arguments();
914                           peek().invokeWith(argList);
915       break;
916     default:
917       jj_la1[37] = jj_gen;
918       jj_consume_token(-1);
919       throw new ParseException();
920     }
921   }
922
923   final public void Literal() throws ParseException {
924     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
925     case INTEGER_LITERAL:
926       jj_consume_token(INTEGER_LITERAL);
927                           push(LValue.makeInteger(vm, token));
928       break;
929     case FLOATING_POINT_LITERAL:
930       jj_consume_token(FLOATING_POINT_LITERAL);
931                           push(LValue.makeFloat(vm, token));
932       break;
933     case CHARACTER_LITERAL:
934       jj_consume_token(CHARACTER_LITERAL);
935                           push(LValue.makeCharacter(vm, token));
936       break;
937     case STRING_LITERAL:
938       jj_consume_token(STRING_LITERAL);
939                           push(LValue.makeString(vm, token));
940       break;
941     case FALSE:
942     case TRUE:
943       BooleanLiteral();
944                           push(LValue.makeBoolean(vm, token));
945       break;
946     case NULL:
947       NullLiteral();
948                           push(LValue.makeNull(vm, token));
949       break;
950     default:
951       jj_la1[38] = jj_gen;
952       jj_consume_token(-1);
953       throw new ParseException();
954     }
955   }
956
957   final public void BooleanLiteral() throws ParseException {
958     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
959     case TRUE:
960       jj_consume_token(TRUE);
961       break;
962     case FALSE:
963       jj_consume_token(FALSE);
964       break;
965     default:
966       jj_la1[39] = jj_gen;
967       jj_consume_token(-1);
968       throw new ParseException();
969     }
970   }
971
972   final public void NullLiteral() throws ParseException {
973     jj_consume_token(NULL);
974   }
975
976   final public List JavaDoc Arguments() throws ParseException {
977  List JavaDoc argList = new ArrayList JavaDoc();
978     jj_consume_token(LPAREN);
979     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
980     case FALSE:
981     case NEW:
982     case NULL:
983     case SUPER:
984     case THIS:
985     case TRUE:
986     case INTEGER_LITERAL:
987     case FLOATING_POINT_LITERAL:
988     case CHARACTER_LITERAL:
989     case STRING_LITERAL:
990     case IDENTIFIER:
991     case LPAREN:
992     case BANG:
993     case TILDE:
994     case INCR:
995     case DECR:
996     case PLUS:
997     case MINUS:
998       ArgumentList(argList);
999       break;
1000    default:
1001      jj_la1[40] = jj_gen;
1002      ;
1003    }
1004    jj_consume_token(RPAREN);
1005    {if (true) return argList;}
1006    throw new Error JavaDoc("Missing return statement in function");
1007  }
1008
1009  final public void ArgumentList(List JavaDoc argList) throws ParseException {
1010    Expression();
1011                argList.add(pop().interiorGetValue());
1012    label_17:
1013    while (true) {
1014      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1015      case COMMA:
1016        ;
1017        break;
1018      default:
1019        jj_la1[41] = jj_gen;
1020        break label_17;
1021      }
1022      jj_consume_token(COMMA);
1023      Expression();
1024                      argList.add(pop().interiorGetValue());
1025    }
1026  }
1027
1028  final public void AllocationExpression() throws ParseException {
1029 List JavaDoc argList; String JavaDoc className;
1030    if (jj_2_7(2)) {
1031      jj_consume_token(NEW);
1032      PrimitiveType();
1033      ArrayDimensions();
1034    } else {
1035      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1036      case NEW:
1037        jj_consume_token(NEW);
1038        className = Name();
1039        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1040        case LPAREN:
1041          argList = Arguments();
1042                          push(LValue.makeNewObject(vm, frameGetter, className, argList));
1043          break;
1044        case LBRACKET:
1045          ArrayDimensions();
1046                          {if (true) throw new ParseException("operation not yet supported");}
1047          break;
1048        default:
1049          jj_la1[42] = jj_gen;
1050          jj_consume_token(-1);
1051          throw new ParseException();
1052        }
1053        break;
1054      default:
1055        jj_la1[43] = jj_gen;
1056        jj_consume_token(-1);
1057        throw new ParseException();
1058      }
1059    }
1060  }
1061
1062/*
1063 * The second LOOKAHEAD specification below is to parse to PrimarySuffix
1064 * if there is an expression between the "[...]".
1065 */

1066  final public void ArrayDimensions() throws ParseException {
1067    label_18:
1068    while (true) {
1069      jj_consume_token(LBRACKET);
1070      Expression();
1071      jj_consume_token(RBRACKET);
1072      if (jj_2_8(2)) {
1073        ;
1074      } else {
1075        break label_18;
1076      }
1077    }
1078    label_19:
1079    while (true) {
1080      if (jj_2_9(2)) {
1081        ;
1082      } else {
1083        break label_19;
1084      }
1085      jj_consume_token(LBRACKET);
1086      jj_consume_token(RBRACKET);
1087    }
1088  }
1089
1090  final private boolean jj_2_1(int xla) {
1091    jj_la = xla; jj_lastpos = jj_scanpos = token;
1092    boolean retval = !jj_3_1();
1093    jj_save(0, xla);
1094    return retval;
1095  }
1096
1097  final private boolean jj_2_2(int xla) {
1098    jj_la = xla; jj_lastpos = jj_scanpos = token;
1099    boolean retval = !jj_3_2();
1100    jj_save(1, xla);
1101    return retval;
1102  }
1103
1104  final private boolean jj_2_3(int xla) {
1105    jj_la = xla; jj_lastpos = jj_scanpos = token;
1106    boolean retval = !jj_3_3();
1107    jj_save(2, xla);
1108    return retval;
1109  }
1110
1111  final private boolean jj_2_4(int xla) {
1112    jj_la = xla; jj_lastpos = jj_scanpos = token;
1113    boolean retval = !jj_3_4();
1114    jj_save(3, xla);
1115    return retval;
1116  }
1117
1118  final private boolean jj_2_5(int xla) {
1119    jj_la = xla; jj_lastpos = jj_scanpos = token;
1120    boolean retval = !jj_3_5();
1121    jj_save(4, xla);
1122    return retval;
1123  }
1124
1125  final private boolean jj_2_6(int xla) {
1126    jj_la = xla; jj_lastpos = jj_scanpos = token;
1127    boolean retval = !jj_3_6();
1128    jj_save(5, xla);
1129    return retval;
1130  }
1131
1132  final private boolean jj_2_7(int xla) {
1133    jj_la = xla; jj_lastpos = jj_scanpos = token;
1134    boolean retval = !jj_3_7();
1135    jj_save(6, xla);
1136    return retval;
1137  }
1138
1139  final private boolean jj_2_8(int xla) {
1140    jj_la = xla; jj_lastpos = jj_scanpos = token;
1141    boolean retval = !jj_3_8();
1142    jj_save(7, xla);
1143    return retval;
1144  }
1145
1146  final private boolean jj_2_9(int xla) {
1147    jj_la = xla; jj_lastpos = jj_scanpos = token;
1148    boolean retval = !jj_3_9();
1149    jj_save(8, xla);
1150    return retval;
1151  }
1152
1153  final private boolean jj_3R_154() {
1154    if (jj_scan_token(INCR)) return true;
1155    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1156    return false;
1157  }
1158
1159  final private boolean jj_3R_151() {
1160    Token xsp;
1161    xsp = jj_scanpos;
1162    if (jj_3R_154()) {
1163    jj_scanpos = xsp;
1164    if (jj_3R_155()) return true;
1165    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1166    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1167    return false;
1168  }
1169
1170  final private boolean jj_3R_148() {
1171    Token xsp;
1172    xsp = jj_scanpos;
1173    if (jj_3_6()) {
1174    jj_scanpos = xsp;
1175    if (jj_3R_150()) return true;
1176    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1177    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1178    return false;
1179  }
1180
1181  final private boolean jj_3_6() {
1182    if (jj_scan_token(LPAREN)) return true;
1183    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1184    if (jj_3R_23()) return true;
1185    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1186    Token xsp;
1187    while (true) {
1188      xsp = jj_scanpos;
1189      if (jj_3R_152()) { jj_scanpos = xsp; break; }
1190      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1191    }
1192    if (jj_scan_token(RPAREN)) return true;
1193    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1194    if (jj_3R_115()) return true;
1195    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1196    return false;
1197  }
1198
1199  final private boolean jj_3R_25() {
1200    Token xsp;
1201    xsp = jj_scanpos;
1202    if (jj_3R_50()) {
1203    jj_scanpos = xsp;
1204    if (jj_3R_51()) return true;
1205    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1206    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1207    return false;
1208  }
1209
1210  final private boolean jj_3R_50() {
1211    if (jj_3R_67()) return true;
1212    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1213    return false;
1214  }
1215
1216  final private boolean jj_3_5() {
1217    if (jj_scan_token(LPAREN)) return true;
1218    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1219    if (jj_3R_24()) return true;
1220    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1221    if (jj_scan_token(LBRACKET)) return true;
1222    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1223    return false;
1224  }
1225
1226  final private boolean jj_3R_149() {
1227    if (jj_3R_20()) return true;
1228    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1229    Token xsp;
1230    xsp = jj_scanpos;
1231    if (jj_3R_151()) jj_scanpos = xsp;
1232    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1233    return false;
1234  }
1235
1236  final private boolean jj_3R_41() {
1237    if (jj_scan_token(LPAREN)) return true;
1238    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1239    if (jj_3R_24()) return true;
1240    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1241    if (jj_scan_token(RPAREN)) return true;
1242    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1243    Token xsp;
1244    xsp = jj_scanpos;
1245    if (jj_3R_59()) {
1246    jj_scanpos = xsp;
1247    if (jj_3R_60()) {
1248    jj_scanpos = xsp;
1249    if (jj_3R_61()) {
1250    jj_scanpos = xsp;
1251    if (jj_3R_62()) {
1252    jj_scanpos = xsp;
1253    if (jj_3R_63()) {
1254    jj_scanpos = xsp;
1255    if (jj_3R_64()) {
1256    jj_scanpos = xsp;
1257    if (jj_3R_65()) {
1258    jj_scanpos = xsp;
1259    if (jj_3R_66()) return true;
1260    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1261    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1262    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1263    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1264    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1265    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1266    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1267    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1268    return false;
1269  }
1270
1271  final private boolean jj_3R_40() {
1272    if (jj_scan_token(LPAREN)) return true;
1273    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1274    if (jj_3R_24()) return true;
1275    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1276    if (jj_scan_token(LBRACKET)) return true;
1277    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1278    if (jj_scan_token(RBRACKET)) return true;
1279    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1280    return false;
1281  }
1282
1283  final private boolean jj_3R_123() {
1284    if (jj_scan_token(LBRACKET)) return true;
1285    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1286    if (jj_scan_token(RBRACKET)) return true;
1287    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1288    return false;
1289  }
1290
1291  final private boolean jj_3_1() {
1292    if (jj_scan_token(DOT)) return true;
1293    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1294    if (jj_scan_token(IDENTIFIER)) return true;
1295    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1296    return false;
1297  }
1298
1299  final private boolean jj_3_4() {
1300    if (jj_scan_token(LPAREN)) return true;
1301    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1302    if (jj_3R_23()) return true;
1303    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1304    return false;
1305  }
1306
1307  final private boolean jj_3R_22() {
1308    Token xsp;
1309    xsp = jj_scanpos;
1310    if (jj_3_4()) {
1311    jj_scanpos = xsp;
1312    if (jj_3R_40()) {
1313    jj_scanpos = xsp;
1314    if (jj_3R_41()) return true;
1315    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1316    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1317    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1318    return false;
1319  }
1320
1321  final private boolean jj_3_3() {
1322    if (jj_3R_22()) return true;
1323    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1324    return false;
1325  }
1326
1327  final private boolean jj_3R_24() {
1328    if (jj_scan_token(IDENTIFIER)) return true;
1329    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1330    Token xsp;
1331    while (true) {
1332      xsp = jj_scanpos;
1333      if (jj_3_1()) { jj_scanpos = xsp; break; }
1334      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1335    }
1336    return false;
1337  }
1338
1339  final private boolean jj_3R_147() {
1340    if (jj_scan_token(BANG)) return true;
1341    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1342    return false;
1343  }
1344
1345  final private boolean jj_3R_142() {
1346    if (jj_3R_149()) return true;
1347    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1348    return false;
1349  }
1350
1351  final private boolean jj_3R_122() {
1352    if (jj_3R_24()) return true;
1353    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1354    return false;
1355  }
1356
1357  final private boolean jj_3R_49() {
1358    if (jj_scan_token(DOUBLE)) return true;
1359    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1360    return false;
1361  }
1362
1363  final private boolean jj_3R_141() {
1364    if (jj_3R_148()) return true;
1365    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1366    return false;
1367  }
1368
1369  final private boolean jj_3R_48() {
1370    if (jj_scan_token(FLOAT)) return true;
1371    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1372    return false;
1373  }
1374
1375  final private boolean jj_3R_146() {
1376    if (jj_scan_token(TILDE)) return true;
1377    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1378    return false;
1379  }
1380
1381  final private boolean jj_3R_47() {
1382    if (jj_scan_token(LONG)) return true;
1383    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1384    return false;
1385  }
1386
1387  final private boolean jj_3R_140() {
1388    Token xsp;
1389    xsp = jj_scanpos;
1390    if (jj_3R_146()) {
1391    jj_scanpos = xsp;
1392    if (jj_3R_147()) return true;
1393    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1394    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1395    if (jj_3R_115()) return true;
1396    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1397    return false;
1398  }
1399
1400  final private boolean jj_3R_136() {
1401    Token xsp;
1402    xsp = jj_scanpos;
1403    if (jj_3R_140()) {
1404    jj_scanpos = xsp;
1405    if (jj_3R_141()) {
1406    jj_scanpos = xsp;
1407    if (jj_3R_142()) return true;
1408    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1409    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1410    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1411    return false;
1412  }
1413
1414  final private boolean jj_3R_46() {
1415    if (jj_scan_token(INT)) return true;
1416    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1417    return false;
1418  }
1419
1420  final private boolean jj_3R_145() {
1421    if (jj_scan_token(REM)) return true;
1422    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1423    return false;
1424  }
1425
1426  final private boolean jj_3R_45() {
1427    if (jj_scan_token(SHORT)) return true;
1428    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1429    return false;
1430  }
1431
1432  final private boolean jj_3R_44() {
1433    if (jj_scan_token(BYTE)) return true;
1434    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1435    return false;
1436  }
1437
1438  final private boolean jj_3R_135() {
1439    if (jj_scan_token(DECR)) return true;
1440    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1441    if (jj_3R_20()) return true;
1442    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1443    return false;
1444  }
1445
1446  final private boolean jj_3R_43() {
1447    if (jj_scan_token(CHAR)) return true;
1448    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1449    return false;
1450  }
1451
1452  final private boolean jj_3R_23() {
1453    Token xsp;
1454    xsp = jj_scanpos;
1455    if (jj_3R_42()) {
1456    jj_scanpos = xsp;
1457    if (jj_3R_43()) {
1458    jj_scanpos = xsp;
1459    if (jj_3R_44()) {
1460    jj_scanpos = xsp;
1461    if (jj_3R_45()) {
1462    jj_scanpos = xsp;
1463    if (jj_3R_46()) {
1464    jj_scanpos = xsp;
1465    if (jj_3R_47()) {
1466    jj_scanpos = xsp;
1467    if (jj_3R_48()) {
1468    jj_scanpos = xsp;
1469    if (jj_3R_49()) return true;
1470    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1471    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1472    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1473    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1474    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1475    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1476    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1477    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1478    return false;
1479  }
1480
1481  final private boolean jj_3R_42() {
1482    if (jj_scan_token(BOOLEAN)) return true;
1483    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1484    return false;
1485  }
1486
1487  final private boolean jj_3_9() {
1488    if (jj_scan_token(LBRACKET)) return true;
1489    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1490    if (jj_scan_token(RBRACKET)) return true;
1491    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1492    return false;
1493  }
1494
1495  final private boolean jj_3R_121() {
1496    if (jj_3R_23()) return true;
1497    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1498    return false;
1499  }
1500
1501  final private boolean jj_3R_144() {
1502    if (jj_scan_token(SLASH)) return true;
1503    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1504    return false;
1505  }
1506
1507  final private boolean jj_3R_134() {
1508    if (jj_scan_token(INCR)) return true;
1509    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1510    if (jj_3R_20()) return true;
1511    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1512    return false;
1513  }
1514
1515  final private boolean jj_3R_114() {
1516    Token xsp;
1517    xsp = jj_scanpos;
1518    if (jj_3R_121()) {
1519    jj_scanpos = xsp;
1520    if (jj_3R_122()) return true;
1521    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1522    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1523    while (true) {
1524      xsp = jj_scanpos;
1525      if (jj_3R_123()) { jj_scanpos = xsp; break; }
1526      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1527    }
1528    return false;
1529  }
1530
1531  final private boolean jj_3R_120() {
1532    if (jj_scan_token(GE)) return true;
1533    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1534    return false;
1535  }
1536
1537  final private boolean jj_3R_133() {
1538    if (jj_scan_token(MINUS)) return true;
1539    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1540    return false;
1541  }
1542
1543  final private boolean jj_3R_127() {
1544    if (jj_3R_136()) return true;
1545    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1546    return false;
1547  }
1548
1549  final private boolean jj_3R_126() {
1550    if (jj_3R_135()) return true;
1551    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1552    return false;
1553  }
1554
1555  final private boolean jj_3R_139() {
1556    if (jj_scan_token(MINUS)) return true;
1557    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1558    return false;
1559  }
1560
1561  final private boolean jj_3R_125() {
1562    if (jj_3R_134()) return true;
1563    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1564    return false;
1565  }
1566
1567  final private boolean jj_3R_132() {
1568    if (jj_scan_token(PLUS)) return true;
1569    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1570    return false;
1571  }
1572
1573  final private boolean jj_3R_143() {
1574    if (jj_scan_token(STAR)) return true;
1575    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1576    return false;
1577  }
1578
1579  final private boolean jj_3R_124() {
1580    Token xsp;
1581    xsp = jj_scanpos;
1582    if (jj_3R_132()) {
1583    jj_scanpos = xsp;
1584    if (jj_3R_133()) return true;
1585    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1586    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1587    if (jj_3R_115()) return true;
1588    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1589    return false;
1590  }
1591
1592  final private boolean jj_3R_115() {
1593    Token xsp;
1594    xsp = jj_scanpos;
1595    if (jj_3R_124()) {
1596    jj_scanpos = xsp;
1597    if (jj_3R_125()) {
1598    jj_scanpos = xsp;
1599    if (jj_3R_126()) {
1600    jj_scanpos = xsp;
1601    if (jj_3R_127()) return true;
1602    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1603    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1604    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1605    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1606    return false;
1607  }
1608
1609  final private boolean jj_3R_137() {
1610    Token xsp;
1611    xsp = jj_scanpos;
1612    if (jj_3R_143()) {
1613    jj_scanpos = xsp;
1614    if (jj_3R_144()) {
1615    jj_scanpos = xsp;
1616    if (jj_3R_145()) return true;
1617    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1618    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1619    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1620    if (jj_3R_115()) return true;
1621    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1622    return false;
1623  }
1624
1625  final private boolean jj_3R_131() {
1626    if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
1627    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1628    return false;
1629  }
1630
1631  final private boolean jj_3R_119() {
1632    if (jj_scan_token(LE)) return true;
1633    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1634    return false;
1635  }
1636
1637  final private boolean jj_3R_138() {
1638    if (jj_scan_token(PLUS)) return true;
1639    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1640    return false;
1641  }
1642
1643  final private boolean jj_3R_112() {
1644    if (jj_3R_115()) return true;
1645    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1646    Token xsp;
1647    while (true) {
1648      xsp = jj_scanpos;
1649      if (jj_3R_137()) { jj_scanpos = xsp; break; }
1650      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1651    }
1652    return false;
1653  }
1654
1655  final private boolean jj_3R_88() {
1656    if (jj_3R_86()) return true;
1657    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1658    return false;
1659  }
1660
1661  final private boolean jj_3R_130() {
1662    if (jj_scan_token(RSIGNEDSHIFT)) return true;
1663    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1664    return false;
1665  }
1666
1667  final private boolean jj_3R_128() {
1668    Token xsp;
1669    xsp = jj_scanpos;
1670    if (jj_3R_138()) {
1671    jj_scanpos = xsp;
1672    if (jj_3R_139()) return true;
1673    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1674    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1675    if (jj_3R_112()) return true;
1676    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1677    return false;
1678  }
1679
1680  final private boolean jj_3R_87() {
1681    if (jj_3R_82()) return true;
1682    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1683    return false;
1684  }
1685
1686  final private boolean jj_3R_118() {
1687    if (jj_scan_token(GT)) return true;
1688    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1689    return false;
1690  }
1691
1692  final private boolean jj_3R_129() {
1693    if (jj_scan_token(LSHIFT)) return true;
1694    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1695    return false;
1696  }
1697
1698  final private boolean jj_3R_116() {
1699    Token xsp;
1700    xsp = jj_scanpos;
1701    if (jj_3R_129()) {
1702    jj_scanpos = xsp;
1703    if (jj_3R_130()) {
1704    jj_scanpos = xsp;
1705    if (jj_3R_131()) return true;
1706    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1707    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1708    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1709    if (jj_3R_108()) return true;
1710    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1711    return false;
1712  }
1713
1714  final private boolean jj_3R_108() {
1715    if (jj_3R_112()) return true;
1716    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1717    Token xsp;
1718    while (true) {
1719      xsp = jj_scanpos;
1720      if (jj_3R_128()) { jj_scanpos = xsp; break; }
1721      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1722    }
1723    return false;
1724  }
1725
1726  final private boolean jj_3_8() {
1727    if (jj_scan_token(LBRACKET)) return true;
1728    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1729    if (jj_3R_25()) return true;
1730    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1731    if (jj_scan_token(RBRACKET)) return true;
1732    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1733    return false;
1734  }
1735
1736  final private boolean jj_3R_86() {
1737    Token xsp;
1738    if (jj_3_8()) return true;
1739    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1740    while (true) {
1741      xsp = jj_scanpos;
1742      if (jj_3_8()) { jj_scanpos = xsp; break; }
1743      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1744    }
1745    while (true) {
1746      xsp = jj_scanpos;
1747      if (jj_3_9()) { jj_scanpos = xsp; break; }
1748      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1749    }
1750    return false;
1751  }
1752
1753  final private boolean jj_3R_117() {
1754    if (jj_scan_token(LT)) return true;
1755    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1756    return false;
1757  }
1758
1759  final private boolean jj_3R_106() {
1760    if (jj_3R_108()) return true;
1761    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1762    Token xsp;
1763    while (true) {
1764      xsp = jj_scanpos;
1765      if (jj_3R_116()) { jj_scanpos = xsp; break; }
1766      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1767    }
1768    return false;
1769  }
1770
1771  final private boolean jj_3R_113() {
1772    Token xsp;
1773    xsp = jj_scanpos;
1774    if (jj_3R_117()) {
1775    jj_scanpos = xsp;
1776    if (jj_3R_118()) {
1777    jj_scanpos = xsp;
1778    if (jj_3R_119()) {
1779    jj_scanpos = xsp;
1780    if (jj_3R_120()) return true;
1781    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1782    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1783    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1784    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1785    if (jj_3R_106()) return true;
1786    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1787    return false;
1788  }
1789
1790  final private boolean jj_3R_111() {
1791    if (jj_scan_token(NE)) return true;
1792    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1793    return false;
1794  }
1795
1796  final private boolean jj_3R_109() {
1797    if (jj_scan_token(INSTANCEOF)) return true;
1798    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1799    if (jj_3R_114()) return true;
1800    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1801    return false;
1802  }
1803
1804  final private boolean jj_3R_104() {
1805    if (jj_3R_106()) return true;
1806    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1807    Token xsp;
1808    while (true) {
1809      xsp = jj_scanpos;
1810      if (jj_3R_113()) { jj_scanpos = xsp; break; }
1811      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1812    }
1813    return false;
1814  }
1815
1816  final private boolean jj_3R_81() {
1817    if (jj_scan_token(NEW)) return true;
1818    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1819    if (jj_3R_24()) return true;
1820    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1821    Token xsp;
1822    xsp = jj_scanpos;
1823    if (jj_3R_87()) {
1824    jj_scanpos = xsp;
1825    if (jj_3R_88()) return true;
1826    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1827    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1828    return false;
1829  }
1830
1831  final private boolean jj_3_7() {
1832    if (jj_scan_token(NEW)) return true;
1833    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1834    if (jj_3R_23()) return true;
1835    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1836    if (jj_3R_86()) return true;
1837    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1838    return false;
1839  }
1840
1841  final private boolean jj_3R_70() {
1842    Token xsp;
1843    xsp = jj_scanpos;
1844    if (jj_3_7()) {
1845    jj_scanpos = xsp;
1846    if (jj_3R_81()) return true;
1847    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1848    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1849    return false;
1850  }
1851
1852  final private boolean jj_3R_97() {
1853    if (jj_scan_token(COMMA)) return true;
1854    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1855    if (jj_3R_25()) return true;
1856    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1857    return false;
1858  }
1859
1860  final private boolean jj_3R_39() {
1861    if (jj_scan_token(ORASSIGN)) return true;
1862    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1863    return false;
1864  }
1865
1866  final private boolean jj_3R_110() {
1867    if (jj_scan_token(EQ)) return true;
1868    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1869    return false;
1870  }
1871
1872  final private boolean jj_3R_102() {
1873    if (jj_3R_104()) return true;
1874    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1875    Token xsp;
1876    xsp = jj_scanpos;
1877    if (jj_3R_109()) jj_scanpos = xsp;
1878    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1879    return false;
1880  }
1881
1882  final private boolean jj_3R_107() {
1883    Token xsp;
1884    xsp = jj_scanpos;
1885    if (jj_3R_110()) {
1886    jj_scanpos = xsp;
1887    if (jj_3R_111()) return true;
1888    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1889    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1890    if (jj_3R_102()) return true;
1891    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1892    return false;
1893  }
1894
1895  final private boolean jj_3R_94() {
1896    if (jj_3R_25()) return true;
1897    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1898    Token xsp;
1899    while (true) {
1900      xsp = jj_scanpos;
1901      if (jj_3R_97()) { jj_scanpos = xsp; break; }
1902      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1903    }
1904    return false;
1905  }
1906
1907  final private boolean jj_3R_89() {
1908    if (jj_3R_94()) return true;
1909    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1910    return false;
1911  }
1912
1913  final private boolean jj_3R_38() {
1914    if (jj_scan_token(XORASSIGN)) return true;
1915    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1916    return false;
1917  }
1918
1919  final private boolean jj_3R_82() {
1920    if (jj_scan_token(LPAREN)) return true;
1921    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1922    Token xsp;
1923    xsp = jj_scanpos;
1924    if (jj_3R_89()) jj_scanpos = xsp;
1925    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1926    if (jj_scan_token(RPAREN)) return true;
1927    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1928    return false;
1929  }
1930
1931  final private boolean jj_3R_105() {
1932    if (jj_scan_token(BIT_AND)) return true;
1933    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1934    if (jj_3R_100()) return true;
1935    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1936    return false;
1937  }
1938
1939  final private boolean jj_3R_100() {
1940    if (jj_3R_102()) return true;
1941    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1942    Token xsp;
1943    while (true) {
1944      xsp = jj_scanpos;
1945      if (jj_3R_107()) { jj_scanpos = xsp; break; }
1946      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1947    }
1948    return false;
1949  }
1950
1951  final private boolean jj_3R_37() {
1952    if (jj_scan_token(ANDASSIGN)) return true;
1953    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1954    return false;
1955  }
1956
1957  final private boolean jj_3R_85() {
1958    if (jj_scan_token(NULL)) return true;
1959    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1960    return false;
1961  }
1962
1963  final private boolean jj_3R_103() {
1964    if (jj_scan_token(XOR)) return true;
1965    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1966    if (jj_3R_98()) return true;
1967    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1968    return false;
1969  }
1970
1971  final private boolean jj_3R_98() {
1972    if (jj_3R_100()) return true;
1973    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1974    Token xsp;
1975    while (true) {
1976      xsp = jj_scanpos;
1977      if (jj_3R_105()) { jj_scanpos = xsp; break; }
1978      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1979    }
1980    return false;
1981  }
1982
1983  final private boolean jj_3R_92() {
1984    if (jj_scan_token(FALSE)) return true;
1985    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1986    return false;
1987  }
1988
1989  final private boolean jj_3R_36() {
1990    if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true;
1991    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1992    return false;
1993  }
1994
1995  final private boolean jj_3R_91() {
1996    if (jj_scan_token(TRUE)) return true;
1997    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1998    return false;
1999  }
2000
2001  final private boolean jj_3R_84() {
2002    Token xsp;
2003    xsp = jj_scanpos;
2004    if (jj_3R_91()) {
2005    jj_scanpos = xsp;
2006    if (jj_3R_92()) return true;
2007    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2008    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2009    return false;
2010  }
2011
2012  final private boolean jj_3R_101() {
2013    if (jj_scan_token(BIT_OR)) return true;
2014    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2015    if (jj_3R_95()) return true;
2016    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2017    return false;
2018  }
2019
2020  final private boolean jj_3R_95() {
2021    if (jj_3R_98()) return true;
2022    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2023    Token xsp;
2024    while (true) {
2025      xsp = jj_scanpos;
2026      if (jj_3R_103()) { jj_scanpos = xsp; break; }
2027      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2028    }
2029    return false;
2030  }
2031
2032  final private boolean jj_3R_35() {
2033    if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
2034    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2035    return false;
2036  }
2037
2038  final private boolean jj_3R_80() {
2039    if (jj_3R_85()) return true;
2040    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2041    return false;
2042  }
2043
2044  final private boolean jj_3R_66() {
2045    if (jj_3R_69()) return true;
2046    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2047    return false;
2048  }
2049
2050  final private boolean jj_3R_79() {
2051    if (jj_3R_84()) return true;
2052    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2053    return false;
2054  }
2055
2056  final private boolean jj_3R_78() {
2057    if (jj_scan_token(STRING_LITERAL)) return true;
2058    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2059    return false;
2060  }
2061
2062  final private boolean jj_3R_99() {
2063    if (jj_scan_token(SC_AND)) return true;
2064    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2065    if (jj_3R_90()) return true;
2066    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2067    return false;
2068  }
2069
2070  final private boolean jj_3R_90() {
2071    if (jj_3R_95()) return true;
2072    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2073    Token xsp;
2074    while (true) {
2075      xsp = jj_scanpos;
2076      if (jj_3R_101()) { jj_scanpos = xsp; break; }
2077      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2078    }
2079    return false;
2080  }
2081
2082  final private boolean jj_3R_34() {
2083    if (jj_scan_token(LSHIFTASSIGN)) return true;
2084    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2085    return false;
2086  }
2087
2088  final private boolean jj_3R_65() {
2089    if (jj_scan_token(NEW)) return true;
2090    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2091    return false;
2092  }
2093
2094  final private boolean jj_3R_77() {
2095    if (jj_scan_token(CHARACTER_LITERAL)) return true;
2096    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2097    return false;
2098  }
2099
2100  final private boolean jj_3R_76() {
2101    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
2102    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2103    return false;
2104  }
2105
2106  final private boolean jj_3R_33() {
2107    if (jj_scan_token(MINUSASSIGN)) return true;
2108    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2109    return false;
2110  }
2111
2112  final private boolean jj_3R_69() {
2113    Token xsp;
2114    xsp = jj_scanpos;
2115    if (jj_3R_75()) {
2116    jj_scanpos = xsp;
2117    if (jj_3R_76()) {
2118    jj_scanpos = xsp;
2119    if (jj_3R_77()) {
2120    jj_scanpos = xsp;
2121    if (jj_3R_78()) {
2122    jj_scanpos = xsp;
2123    if (jj_3R_79()) {
2124    jj_scanpos = xsp;
2125    if (jj_3R_80()) return true;
2126    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2127    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2128    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2129    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2130    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2131    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2132    return false;
2133  }
2134
2135  final private boolean jj_3R_75() {
2136    if (jj_scan_token(INTEGER_LITERAL)) return true;
2137    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2138    return false;
2139  }
2140
2141  final private boolean jj_3R_96() {
2142    if (jj_scan_token(SC_OR)) return true;
2143    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2144    if (jj_3R_83()) return true;
2145    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2146    return false;
2147  }
2148
2149  final private boolean jj_3R_83() {
2150    if (jj_3R_90()) return true;
2151    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2152    Token xsp;
2153    while (true) {
2154      xsp = jj_scanpos;
2155      if (jj_3R_99()) { jj_scanpos = xsp; break; }
2156      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2157    }
2158    return false;
2159  }
2160
2161  final private boolean jj_3R_64() {
2162    if (jj_scan_token(SUPER)) return true;
2163    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2164    return false;
2165  }
2166
2167  final private boolean jj_3R_32() {
2168    if (jj_scan_token(PLUSASSIGN)) return true;
2169    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2170    return false;
2171  }
2172
2173  final private boolean jj_3R_73() {
2174    if (jj_3R_82()) return true;
2175    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2176    return false;
2177  }
2178
2179  final private boolean jj_3R_72() {
2180    if (jj_scan_token(DOT)) return true;
2181    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2182    if (jj_scan_token(IDENTIFIER)) return true;
2183    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2184    return false;
2185  }
2186
2187  final private boolean jj_3R_74() {
2188    if (jj_3R_83()) return true;
2189    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2190    Token xsp;
2191    while (true) {
2192      xsp = jj_scanpos;
2193      if (jj_3R_96()) { jj_scanpos = xsp; break; }
2194      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2195    }
2196    return false;
2197  }
2198
2199  final private boolean jj_3R_63() {
2200    if (jj_scan_token(THIS)) return true;
2201    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2202    return false;
2203  }
2204
2205  final private boolean jj_3R_31() {
2206    if (jj_scan_token(REMASSIGN)) return true;
2207    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2208    return false;
2209  }
2210
2211  final private boolean jj_3R_58() {
2212    Token xsp;
2213    xsp = jj_scanpos;
2214    if (jj_3R_71()) {
2215    jj_scanpos = xsp;
2216    if (jj_3R_72()) {
2217    jj_scanpos = xsp;
2218    if (jj_3R_73()) return true;
2219    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2220    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2221    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2222    return false;
2223  }
2224
2225  final private boolean jj_3R_71() {
2226    if (jj_scan_token(LBRACKET)) return true;
2227    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2228    if (jj_3R_25()) return true;
2229    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2230    if (jj_scan_token(RBRACKET)) return true;
2231    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2232    return false;
2233  }
2234
2235  final private boolean jj_3R_93() {
2236    if (jj_scan_token(HOOK)) return true;
2237    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2238    if (jj_3R_25()) return true;
2239    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2240    if (jj_scan_token(COLON)) return true;
2241    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2242    if (jj_3R_68()) return true;
2243    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2244    return false;
2245  }
2246
2247  final private boolean jj_3R_57() {
2248    if (jj_3R_70()) return true;
2249    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2250    return false;
2251  }
2252
2253  final private boolean jj_3R_30() {
2254    if (jj_scan_token(SLASHASSIGN)) return true;
2255    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2256    return false;
2257  }
2258
2259  final private boolean jj_3R_27() {
2260    if (jj_3R_58()) return true;
2261    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2262    return false;
2263  }
2264
2265  final private boolean jj_3R_56() {
2266    if (jj_scan_token(LPAREN)) return true;
2267    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2268    if (jj_3R_25()) return true;
2269    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2270    if (jj_scan_token(RPAREN)) return true;
2271    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2272    return false;
2273  }
2274
2275  final private boolean jj_3R_152() {
2276    if (jj_scan_token(LBRACKET)) return true;
2277    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2278    if (jj_scan_token(RBRACKET)) return true;
2279    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2280    return false;
2281  }
2282
2283  final private boolean jj_3R_55() {
2284    if (jj_scan_token(SUPER)) return true;
2285    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2286    if (jj_scan_token(DOT)) return true;
2287    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2288    if (jj_scan_token(IDENTIFIER)) return true;
2289    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2290    return false;
2291  }
2292
2293  final private boolean jj_3R_29() {
2294    if (jj_scan_token(STARASSIGN)) return true;
2295    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2296    return false;
2297  }
2298
2299  final private boolean jj_3R_68() {
2300    if (jj_3R_74()) return true;
2301    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2302    Token xsp;
2303    xsp = jj_scanpos;
2304    if (jj_3R_93()) jj_scanpos = xsp;
2305    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2306    return false;
2307  }
2308
2309  final private boolean jj_3R_54() {
2310    if (jj_scan_token(THIS)) return true;
2311    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2312    return false;
2313  }
2314
2315  final private boolean jj_3R_62() {
2316    if (jj_scan_token(IDENTIFIER)) return true;
2317    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2318    return false;
2319  }
2320
2321  final private boolean jj_3R_53() {
2322    if (jj_3R_24()) return true;
2323    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2324    return false;
2325  }
2326
2327  final private boolean jj_3R_153() {
2328    if (jj_scan_token(LBRACKET)) return true;
2329    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2330    if (jj_scan_token(RBRACKET)) return true;
2331    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2332    return false;
2333  }
2334
2335  final private boolean jj_3R_26() {
2336    Token xsp;
2337    xsp = jj_scanpos;
2338    if (jj_3R_52()) {
2339    jj_scanpos = xsp;
2340    if (jj_3R_53()) {
2341    jj_scanpos = xsp;
2342    if (jj_3R_54()) {
2343    jj_scanpos = xsp;
2344    if (jj_3R_55()) {
2345    jj_scanpos = xsp;
2346    if (jj_3R_56()) {
2347    jj_scanpos = xsp;
2348    if (jj_3R_57()) return true;
2349    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2350    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2351    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2352    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2353    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2354    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2355    return false;
2356  }
2357
2358  final private boolean jj_3R_52() {
2359    if (jj_3R_69()) return true;
2360    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2361    return false;
2362  }
2363
2364  final private boolean jj_3R_21() {
2365    Token xsp;
2366    xsp = jj_scanpos;
2367    if (jj_3R_28()) {
2368    jj_scanpos = xsp;
2369    if (jj_3R_29()) {
2370    jj_scanpos = xsp;
2371    if (jj_3R_30()) {
2372    jj_scanpos = xsp;
2373    if (jj_3R_31()) {
2374    jj_scanpos = xsp;
2375    if (jj_3R_32()) {
2376    jj_scanpos = xsp;
2377    if (jj_3R_33()) {
2378    jj_scanpos = xsp;
2379    if (jj_3R_34()) {
2380    jj_scanpos = xsp;
2381    if (jj_3R_35()) {
2382    jj_scanpos = xsp;
2383    if (jj_3R_36()) {
2384    jj_scanpos = xsp;
2385    if (jj_3R_37()) {
2386    jj_scanpos = xsp;
2387    if (jj_3R_38()) {
2388    jj_scanpos = xsp;
2389    if (jj_3R_39()) return true;
2390    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2391    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2392    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2393    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2394    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2395    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2396    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2397    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2398    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2399    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2400    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2401    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2402    return false;
2403  }
2404
2405  final private boolean jj_3R_28() {
2406    if (jj_scan_token(ASSIGN)) return true;
2407    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2408    return false;
2409  }
2410
2411  final private boolean jj_3R_61() {
2412    if (jj_scan_token(LPAREN)) return true;
2413    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2414    return false;
2415  }
2416
2417  final private boolean jj_3_2() {
2418    if (jj_3R_20()) return true;
2419    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2420    if (jj_3R_21()) return true;
2421    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2422    return false;
2423  }
2424
2425  final private boolean jj_3R_20() {
2426    if (jj_3R_26()) return true;
2427    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2428    Token xsp;
2429    while (true) {
2430      xsp = jj_scanpos;
2431      if (jj_3R_27()) { jj_scanpos = xsp; break; }
2432      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2433    }
2434    return false;
2435  }
2436
2437  final private boolean jj_3R_60() {
2438    if (jj_scan_token(BANG)) return true;
2439    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2440    return false;
2441  }
2442
2443  final private boolean jj_3R_155() {
2444    if (jj_scan_token(DECR)) return true;
2445    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2446    return false;
2447  }
2448
2449  final private boolean jj_3R_67() {
2450    if (jj_3R_20()) return true;
2451    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2452    if (jj_3R_21()) return true;
2453    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2454    if (jj_3R_25()) return true;
2455    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2456    return false;
2457  }
2458
2459  final private boolean jj_3R_150() {
2460    if (jj_scan_token(LPAREN)) return true;
2461    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2462    if (jj_3R_24()) return true;
2463    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2464    Token xsp;
2465    while (true) {
2466      xsp = jj_scanpos;
2467      if (jj_3R_153()) { jj_scanpos = xsp; break; }
2468      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2469    }
2470    if (jj_scan_token(RPAREN)) return true;
2471    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2472    if (jj_3R_136()) return true;
2473    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2474    return false;
2475  }
2476
2477  final private boolean jj_3R_59() {
2478    if (jj_scan_token(TILDE)) return true;
2479    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2480    return false;
2481  }
2482
2483  final private boolean jj_3R_51() {
2484    if (jj_3R_68()) return true;
2485    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2486    return false;
2487  }
2488
2489  public ExpressionParserTokenManager token_source;
2490  ASCII_UCodeESC_CharStream jj_input_stream;
2491  public Token token, jj_nt;
2492  private int jj_ntk;
2493  private Token jj_scanpos, jj_lastpos;
2494  private int jj_la;
2495  public boolean lookingAhead = false;
2496  private boolean jj_semLA;
2497  private int jj_gen;
2498  final private int[] jj_la1 = new int[44];
2499  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,};
2500  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,};
2501  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,};
2502  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,};
2503  final private JJExpressionParserCalls[] jj_2_rtns = new JJExpressionParserCalls[9];
2504  private boolean jj_rescan = false;
2505  private int jj_gc = 0;
2506
2507  public ExpressionParser(java.io.InputStream JavaDoc stream) {
2508    jj_input_stream = new ASCII_UCodeESC_CharStream(stream, 1, 1);
2509    token_source = new ExpressionParserTokenManager(jj_input_stream);
2510    token = new Token();
2511    jj_ntk = -1;
2512    jj_gen = 0;
2513    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
2514    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls();
2515  }
2516
2517  public void ReInit(java.io.InputStream JavaDoc stream) {
2518    jj_input_stream.ReInit(stream, 1, 1);
2519    token_source.ReInit(jj_input_stream);
2520    token = new Token();
2521    jj_ntk = -1;
2522    jj_gen = 0;
2523    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
2524    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls();
2525  }
2526
2527  public ExpressionParser(ExpressionParserTokenManager tm) {
2528    token_source = tm;
2529    token = new Token();
2530    jj_ntk = -1;
2531    jj_gen = 0;
2532    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
2533    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls();
2534  }
2535
2536  public void ReInit(ExpressionParserTokenManager tm) {
2537    token_source = tm;
2538    token = new Token();
2539    jj_ntk = -1;
2540    jj_gen = 0;
2541    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
2542    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls();
2543  }
2544
2545  final private Token jj_consume_token(int kind) throws ParseException {
2546    Token oldToken;
2547    if ((oldToken = token).next != null) token = token.next;
2548    else token = token.next = token_source.getNextToken();
2549    jj_ntk = -1;
2550    if (token.kind == kind) {
2551      jj_gen++;
2552      if (++jj_gc > 100) {
2553        jj_gc = 0;
2554        for (int i = 0; i < jj_2_rtns.length; i++) {
2555          JJExpressionParserCalls c = jj_2_rtns[i];
2556          while (c != null) {
2557            if (c.gen < jj_gen) c.first = null;
2558            c = c.next;
2559          }
2560        }
2561      }
2562      return token;
2563    }
2564    token = oldToken;
2565    jj_kind = kind;
2566    throw generateParseException();
2567  }
2568
2569  final private boolean jj_scan_token(int kind) {
2570    if (jj_scanpos == jj_lastpos) {
2571      jj_la--;
2572      if (jj_scanpos.next == null) {
2573        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
2574      } else {
2575        jj_lastpos = jj_scanpos = jj_scanpos.next;
2576      }
2577    } else {
2578      jj_scanpos = jj_scanpos.next;
2579    }
2580    if (jj_rescan) {
2581      int i = 0; Token tok = token;
2582      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
2583      if (tok != null) jj_add_error_token(kind, i);
2584    }
2585    return (jj_scanpos.kind != kind);
2586  }
2587
2588  final public Token getNextToken() {
2589    if (token.next != null) token = token.next;
2590    else token = token.next = token_source.getNextToken();
2591    jj_ntk = -1;
2592    jj_gen++;
2593    return token;
2594  }
2595
2596  final public Token getToken(int index) {
2597    Token t = lookingAhead ? jj_scanpos : token;
2598    for (int i = 0; i < index; i++) {
2599      if (t.next != null) t = t.next;
2600      else t = t.next = token_source.getNextToken();
2601    }
2602    return t;
2603  }
2604
2605  final private int jj_ntk() {
2606    if ((jj_nt=token.next) == null)
2607      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
2608    else
2609      return (jj_ntk = jj_nt.kind);
2610  }
2611
2612  private java.util.Vector JavaDoc jj_expentries = new java.util.Vector JavaDoc();
2613  private int[] jj_expentry;
2614  private int jj_kind = -1;
2615  private int[] jj_lasttokens = new int[100];
2616  private int jj_endpos;
2617
2618  private void jj_add_error_token(int kind, int pos) {
2619    if (pos >= 100) return;
2620    if (pos == jj_endpos + 1) {
2621      jj_lasttokens[jj_endpos++] = kind;
2622    } else if (jj_endpos != 0) {
2623      jj_expentry = new int[jj_endpos];
2624      for (int i = 0; i < jj_endpos; i++) {
2625        jj_expentry[i] = jj_lasttokens[i];
2626      }
2627      boolean exists = false;
2628      for (java.util.Enumeration JavaDoc enum_ = jj_expentries.elements(); enum_.hasMoreElements();) {
2629        int[] oldentry = (int[])(enum_.nextElement());
2630        if (oldentry.length == jj_expentry.length) {
2631          exists = true;
2632          for (int i = 0; i < jj_expentry.length; i++) {
2633            if (oldentry[i] != jj_expentry[i]) {
2634              exists = false;
2635              break;
2636            }
2637          }
2638          if (exists) break;
2639        }
2640      }
2641      if (!exists) jj_expentries.addElement(jj_expentry);
2642      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
2643    }
2644  }
2645
2646  final public ParseException generateParseException() {
2647    jj_expentries.removeAllElements();
2648    boolean[] la1tokens = new boolean[116];
2649    for (int i = 0; i < 116; i++) {
2650      la1tokens[i] = false;
2651    }
2652    if (jj_kind >= 0) {
2653      la1tokens[jj_kind] = true;
2654      jj_kind = -1;
2655    }
2656    for (int i = 0; i < 44; i++) {
2657      if (jj_la1[i] == jj_gen) {
2658        for (int j = 0; j < 32; j++) {
2659          if ((jj_la1_0[i] & (1<<j)) != 0) {
2660            la1tokens[j] = true;
2661          }
2662          if ((jj_la1_1[i] & (1<<j)) != 0) {
2663            la1tokens[32+j] = true;
2664          }
2665          if ((jj_la1_2[i] & (1<<j)) != 0) {
2666            la1tokens[64+j] = true;
2667          }
2668          if ((jj_la1_3[i] & (1<<j)) != 0) {
2669            la1tokens[96+j] = true;
2670          }
2671        }
2672      }
2673    }
2674    for (int i = 0; i < 116; i++) {
2675      if (la1tokens[i]) {
2676        jj_expentry = new int[1];
2677        jj_expentry[0] = i;
2678        jj_expentries.addElement(jj_expentry);
2679      }
2680    }
2681    jj_endpos = 0;
2682    jj_rescan_token();
2683    jj_add_error_token(0, 0);
2684    int[][] exptokseq = new int[jj_expentries.size()][];
2685    for (int i = 0; i < jj_expentries.size(); i++) {
2686      exptokseq[i] = (int[])jj_expentries.elementAt(i);
2687    }
2688    return new ParseException(token, exptokseq, tokenImage);
2689  }
2690
2691  final public void enable_tracing() {
2692  }
2693
2694  final public void disable_tracing() {
2695  }
2696
2697  final private void jj_rescan_token() {
2698    jj_rescan = true;
2699    for (int i = 0; i < 9; i++) {
2700      JJExpressionParserCalls p = jj_2_rtns[i];
2701      do {
2702        if (p.gen > jj_gen) {
2703          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
2704          switch (i) {
2705            case 0: jj_3_1(); break;
2706            case 1: jj_3_2(); break;
2707            case 2: jj_3_3(); break;
2708            case 3: jj_3_4(); break;
2709            case 4: jj_3_5(); break;
2710            case 5: jj_3_6(); break;
2711            case 6: jj_3_7(); break;
2712            case 7: jj_3_8(); break;
2713            case 8: jj_3_9(); break;
2714          }
2715        }
2716        p = p.next;
2717      } while (p != null);
2718    }
2719    jj_rescan = false;
2720  }
2721
2722  final private void jj_save(int index, int xla) {
2723    JJExpressionParserCalls p = jj_2_rtns[index];
2724    while (p.gen > jj_gen) {
2725      if (p.next == null) { p = p.next = new JJExpressionParserCalls(); break; }
2726      p = p.next;
2727    }
2728    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
2729  }
2730
2731}
2732
2733final class JJExpressionParserCalls {
2734  int gen;
2735  Token first;
2736  int arg;
2737  JJExpressionParserCalls next;
2738}
2739
Popular Tags