• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Generated By:JavaCC: Do not edit this line. ASTParser.java */
2 /*
3  *
4  * This file is part of Java 1.8 parser and Abstract Syntax Tree.
5  *
6  * Java 1.8 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * You should have received a copy of the GNU Lesser General Public License
12  * along with Java 1.8 parser and Abstract Syntax Tree.  If not, see <http://www.gnu.org/licenses/>.
13  */
14 package com.github.javaparser;
15 
16 import java.io.*;
17 import java.util.*;
18 import com.github.javaparser.ast.*;
19 import com.github.javaparser.ast.body.*;
20 import com.github.javaparser.ast.comments.*;
21 import com.github.javaparser.ast.expr.*;
22 import com.github.javaparser.ast.stmt.*;
23 import com.github.javaparser.ast.type.*;
24 
25 /**
26  * <p>This class was generated automatically by javacc, do not edit.</p>
27  */
28 final class ASTParser implements ASTParserConstants {
29 
reset(InputStream in, String encoding)30     void reset(InputStream in, String encoding) {
31         ReInit(in, encoding);
32     }
33 
add(List list, Object obj)34     private List add(List list, Object obj) {
35         if (list == null) {
36                 list = new LinkedList();
37         }
38         list.add(obj);
39         return list;
40     }
41 
add(int pos, List list, Object obj)42     private List add(int pos, List list, Object obj) {
43         if (list == null) {
44                 list = new LinkedList();
45         }
46         list.add(pos, obj);
47         return list;
48     }
49 
50         private class Modifier {
51 
52                 final int modifiers;
53                 final List annotations;
54                 final int beginLine;
55                 final int beginColumn;
56 
Modifier(int beginLine, int beginColumn, int modifiers, List annotations)57                 public Modifier(int beginLine, int beginColumn, int modifiers, List annotations) {
58                         this.beginLine = beginLine;
59                         this.beginColumn = beginColumn;
60                         this.modifiers = modifiers;
61                         this.annotations = annotations;
62                 }
63         }
64 
addModifier(int modifiers, int mod, Token token)65     public int addModifier(int modifiers, int mod, Token token) {
66         if ((ModifierSet.hasModifier(modifiers, mod))) {
67             throwParseException(token, "Duplicated modifier");
68         }
69         return ModifierSet.addModifier(modifiers, mod);
70     }
71 
throwParseException(Token token, String message)72     private void throwParseException(Token token, String message) {
73         StringBuilder buf = new StringBuilder();
74         buf.append(message);
75         buf.append(": \"");
76         buf.append(token.image);
77         buf.append("\" at line ");
78         buf.append(token.beginLine);
79         buf.append(", column ");
80         buf.append(token.beginColumn);
81         ParseException e = new ParseException(buf.toString());
82         e.currentToken = token;
83         throw e;
84     }
85 
generateLambda(Expression ret, Statement lambdaBody)86     private Expression generateLambda(Expression ret, Statement lambdaBody) {
87             if (ret instanceof EnclosedExpr) {
88                 Expression inner = ((EnclosedExpr) ret).getInner();
89                 if (inner != null && inner instanceof NameExpr) {
90                     VariableDeclaratorId id = new VariableDeclaratorId(inner.getBeginLine(), inner.getBeginColumn(), inner.getEndLine(), inner.getEndColumn(), ((NameExpr)inner).getName(), 0);
91                     List params = add(null, new Parameter(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), 0, null, new UnknownType(), false, id));
92                     ret = new LambdaExpr(ret.getBeginLine(), ret.getBeginColumn(), lambdaBody.getEndLine(), lambdaBody.getEndColumn(), params, lambdaBody, true);
93                 } else {
94                     ret = new LambdaExpr(ret.getBeginLine(), ret.getBeginColumn(), lambdaBody.getEndLine(), lambdaBody.getEndColumn(), null, lambdaBody, true);
95                 }
96             } else if (ret instanceof NameExpr) {
97                     VariableDeclaratorId id = new VariableDeclaratorId(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), ((NameExpr)ret).getName(), 0);
98                 List params = add(null, new Parameter(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), 0, null, new UnknownType(), false, id));
99                 ret = new LambdaExpr(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), params, lambdaBody, false);
100             } else if (ret instanceof LambdaExpr) {
101                 ((LambdaExpr) ret).setBody(lambdaBody);
102                 ret.setEndLine(lambdaBody.getEndLine());
103                 ret.setEndColumn(lambdaBody.getEndColumn());
104             } else {
105                 throw new ParseException("Failed to parse lambda expression! Please create an issue at https://github.com/javaparser/javaparser/issues");
106             }
107             return ret;
108     }
109 
110     static final class GTToken extends Token {
111 
112         int realKind = ASTParserConstants.GT;
113 
GTToken(int kind, String image)114         GTToken(int kind, String image) {
115             this.kind = kind;
116             this.image = image;
117         }
118 
newToken(int kind, String image)119         public static Token newToken(int kind, String image) {
120             return new GTToken(kind, image);
121         }
122     }
123 
124     private Token last_special_token = null;
125 
126 /*****************************************
127  * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
128  *****************************************/
129 
130 /*
131  * Program structuring syntax follows.
132  */
CompilationUnit()133   final public CompilationUnit CompilationUnit() {
134         PackageDeclaration pakage = null;
135         List imports = null;
136         ImportDeclaration in = null;
137         List types = null;
138         TypeDeclaration tn = null;
139         int line = -1;
140         int column = 0;
141     if (jj_2_1(2147483647)) {
142       pakage = PackageDeclaration();
143                                                                    line = pakage.getBeginLine(); column = pakage.getBeginColumn();
144     } else {
145       ;
146     }
147     label_1:
148     while (true) {
149       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
150       case IMPORT:
151         ;
152         break;
153       default:
154         jj_la1[0] = jj_gen;
155         break label_1;
156       }
157       in = ImportDeclaration();
158                                if(line==-1){line = in.getBeginLine(); column = in.getBeginColumn();} imports = add(imports, in);
159     }
160     label_2:
161     while (true) {
162       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
163       case ABSTRACT:
164       case CLASS:
165       case ENUM:
166       case FINAL:
167       case INTERFACE:
168       case NATIVE:
169       case PRIVATE:
170       case PROTECTED:
171       case PUBLIC:
172       case STATIC:
173       case STRICTFP:
174       case SYNCHRONIZED:
175       case TRANSIENT:
176       case VOLATILE:
177       case SEMICOLON:
178       case AT:
179         ;
180         break;
181       default:
182         jj_la1[1] = jj_gen;
183         break label_2;
184       }
185       tn = TypeDeclaration();
186                              if(line==-1){line = tn.getBeginLine(); column = tn.getBeginColumn();} types = add(types, tn);
187     }
188     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
189     case 0:
190       jj_consume_token(0);
191       break;
192     case 131:
193       jj_consume_token(131);
194       break;
195     default:
196       jj_la1[2] = jj_gen;
197       jj_consume_token(-1);
198       throw new ParseException();
199     }
200     {if (true) return new CompilationUnit(line == -1 ? 0 : line, column, token.endLine, token.endColumn,pakage, imports, types);}
201     throw new Error("Missing return statement in function");
202   }
203 
PackageDeclaration()204   final public PackageDeclaration PackageDeclaration() {
205         List annotations = null;
206         AnnotationExpr ann;
207         NameExpr name;
208         int line;
209         int column;
210     label_3:
211     while (true) {
212       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
213       case AT:
214         ;
215         break;
216       default:
217         jj_la1[3] = jj_gen;
218         break label_3;
219       }
220       ann = Annotation();
221                        annotations = add(annotations, ann);
222     }
223     jj_consume_token(PACKAGE);
224              line=token.beginLine; column=token.beginColumn;
225     name = Name();
226     jj_consume_token(SEMICOLON);
227     {if (true) return new PackageDeclaration(line, column, token.endLine, token.endColumn,annotations, name);}
228     throw new Error("Missing return statement in function");
229   }
230 
ImportDeclaration()231   final public ImportDeclaration ImportDeclaration() {
232         NameExpr name;
233         boolean isStatic = false;
234         boolean isAsterisk = false;
235         int line;
236         int column;
237     jj_consume_token(IMPORT);
238             line=token.beginLine; column=token.beginColumn;
239     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
240     case STATIC:
241       jj_consume_token(STATIC);
242                                                                           isStatic = true;
243       break;
244     default:
245       jj_la1[4] = jj_gen;
246       ;
247     }
248     name = Name();
249     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
250     case DOT:
251       jj_consume_token(DOT);
252       jj_consume_token(STAR);
253                                                                                                                          isAsterisk = true;
254       break;
255     default:
256       jj_la1[5] = jj_gen;
257       ;
258     }
259     jj_consume_token(SEMICOLON);
260     {if (true) return new ImportDeclaration(line, column, token.endLine, token.endColumn,name, isStatic, isAsterisk);}
261     throw new Error("Missing return statement in function");
262   }
263 
264 /*
265  * Modifiers. We match all modifiers in a single rule to reduce the chances of
266  * syntax errors for simple modifier mistakes. It will also enable us to give
267  * better error messages.
268  */
Modifiers()269   final public Modifier Modifiers() {
270     int beginLine = -1;
271     int beginColumn = -1;
272     int modifiers = 0;
273     List annotations = null;
274     AnnotationExpr ann;
275     label_4:
276     while (true) {
277       if (jj_2_2(2)) {
278         ;
279       } else {
280         break label_4;
281       }
282       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
283       case PUBLIC:
284         jj_consume_token(PUBLIC);
285               modifiers = addModifier(modifiers, ModifierSet.PUBLIC, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
286         break;
287       case STATIC:
288         jj_consume_token(STATIC);
289               modifiers = addModifier(modifiers, ModifierSet.STATIC, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
290         break;
291       case PROTECTED:
292         jj_consume_token(PROTECTED);
293                  modifiers = addModifier(modifiers, ModifierSet.PROTECTED, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
294         break;
295       case PRIVATE:
296         jj_consume_token(PRIVATE);
297                modifiers = addModifier(modifiers, ModifierSet.PRIVATE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
298         break;
299       case FINAL:
300         jj_consume_token(FINAL);
301              modifiers = addModifier(modifiers, ModifierSet.FINAL, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
302         break;
303       case ABSTRACT:
304         jj_consume_token(ABSTRACT);
305                 modifiers = addModifier(modifiers, ModifierSet.ABSTRACT, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
306         break;
307       case SYNCHRONIZED:
308         jj_consume_token(SYNCHRONIZED);
309                     modifiers = addModifier(modifiers, ModifierSet.SYNCHRONIZED, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
310         break;
311       case NATIVE:
312         jj_consume_token(NATIVE);
313               modifiers = addModifier(modifiers, ModifierSet.NATIVE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
314         break;
315       case TRANSIENT:
316         jj_consume_token(TRANSIENT);
317                  modifiers = addModifier(modifiers, ModifierSet.TRANSIENT, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
318         break;
319       case VOLATILE:
320         jj_consume_token(VOLATILE);
321                 modifiers = addModifier(modifiers, ModifierSet.VOLATILE, token); if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
322         break;
323       case STRICTFP:
324         jj_consume_token(STRICTFP);
325                 modifiers = addModifier(modifiers, ModifierSet.STRICTFP, token);  if(beginLine==-1) {beginLine=token.beginLine; beginColumn=token.beginColumn;}
326         break;
327       case AT:
328         ann = Annotation();
329                         annotations = add(annotations, ann); if(beginLine==-1) {beginLine=ann.getBeginLine(); beginColumn=ann.getBeginColumn();}
330         break;
331       default:
332         jj_la1[6] = jj_gen;
333         jj_consume_token(-1);
334         throw new ParseException();
335       }
336     }
337     {if (true) return new Modifier(beginLine, beginColumn, modifiers, annotations);}
338     throw new Error("Missing return statement in function");
339   }
340 
341 /*
342  * Declaration syntax follows.
343  */
TypeDeclaration()344   final public TypeDeclaration TypeDeclaration() {
345    Modifier modifier;
346    TypeDeclaration ret;
347 
348     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
349     case SEMICOLON:
350       jj_consume_token(SEMICOLON);
351           ret = new EmptyTypeDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
352       break;
353     case ABSTRACT:
354     case CLASS:
355     case ENUM:
356     case FINAL:
357     case INTERFACE:
358     case NATIVE:
359     case PRIVATE:
360     case PROTECTED:
361     case PUBLIC:
362     case STATIC:
363     case STRICTFP:
364     case SYNCHRONIZED:
365     case TRANSIENT:
366     case VOLATILE:
367     case AT:
368       modifier = Modifiers();
369       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
370       case CLASS:
371       case INTERFACE:
372         ret = ClassOrInterfaceDeclaration(modifier);
373         break;
374       case ENUM:
375         ret = EnumDeclaration(modifier);
376         break;
377       case AT:
378         ret = AnnotationTypeDeclaration(modifier);
379         break;
380       default:
381         jj_la1[7] = jj_gen;
382         jj_consume_token(-1);
383         throw new ParseException();
384       }
385       break;
386     default:
387       jj_la1[8] = jj_gen;
388       jj_consume_token(-1);
389       throw new ParseException();
390     }
391     {if (true) return ret;}
392     throw new Error("Missing return statement in function");
393   }
394 
ClassOrInterfaceDeclaration(Modifier modifier)395   final public ClassOrInterfaceDeclaration ClassOrInterfaceDeclaration(Modifier modifier) {
396    boolean isInterface = false;
397    NameExpr name;
398    List typePar = null;
399    List extList = null;
400    List impList = null;
401    List members;
402    int line = modifier.beginLine;
403    int column = modifier.beginColumn;
404     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
405     case CLASS:
406       jj_consume_token(CLASS);
407       break;
408     case INTERFACE:
409       jj_consume_token(INTERFACE);
410                             isInterface = true;
411       break;
412     default:
413       jj_la1[9] = jj_gen;
414       jj_consume_token(-1);
415       throw new ParseException();
416     }
417                                                       if (line == -1) {line=token.beginLine; column=token.beginColumn;}
418     name = Name();
419     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
420     case LT:
421       typePar = TypeParameters();
422                                 typePar.remove(0);
423       break;
424     default:
425       jj_la1[10] = jj_gen;
426       ;
427     }
428     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
429     case EXTENDS:
430       extList = ExtendsList(isInterface);
431       break;
432     default:
433       jj_la1[11] = jj_gen;
434       ;
435     }
436     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
437     case IMPLEMENTS:
438       impList = ImplementsList(isInterface);
439       break;
440     default:
441       jj_la1[12] = jj_gen;
442       ;
443     }
444     members = ClassOrInterfaceBody(isInterface);
445     ClassOrInterfaceDeclaration tmp = new ClassOrInterfaceDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, isInterface, null, typePar, extList, impList, members);
446     tmp.setNameExpr(name);
447     {if (true) return tmp;}
448     throw new Error("Missing return statement in function");
449   }
450 
ExtendsList(boolean isInterface)451   final public List ExtendsList(boolean isInterface) {
452    boolean extendsMoreThanOne = false;
453    List ret = new LinkedList();
454    ClassOrInterfaceType cit;
455     AnnotationExpr ann;
456    List annotations = null;
457     jj_consume_token(EXTENDS);
458     label_5:
459     while (true) {
460       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
461       case AT:
462         ;
463         break;
464       default:
465         jj_la1[13] = jj_gen;
466         break label_5;
467       }
468       ann = Annotation();
469                                      annotations = add(annotations, ann);
470     }
471     cit = ClassOrInterfaceType();
472                                                                                                             cit.setAnnotations(annotations); ret.add(cit);
473     label_6:
474     while (true) {
475       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
476       case COMMA:
477         ;
478         break;
479       default:
480         jj_la1[14] = jj_gen;
481         break label_6;
482       }
483       jj_consume_token(COMMA);
484       cit = ClassOrInterfaceType();
485                                         ret.add(cit); extendsMoreThanOne = true;
486     }
487       if (extendsMoreThanOne && !isInterface)
488          throwParseException(token, "A class cannot extend more than one other class");
489      {if (true) return ret;}
490     throw new Error("Missing return statement in function");
491   }
492 
ImplementsList(boolean isInterface)493   final public List ImplementsList(boolean isInterface) {
494    List ret = new LinkedList();
495    ClassOrInterfaceType cit;
496    AnnotationExpr ann;
497    List annotations = null;
498     jj_consume_token(IMPLEMENTS);
499     label_7:
500     while (true) {
501       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
502       case AT:
503         ;
504         break;
505       default:
506         jj_la1[15] = jj_gen;
507         break label_7;
508       }
509       ann = Annotation();
510                                         annotations = add(annotations, ann);
511     }
512     cit = ClassOrInterfaceType();
513                                                                                                                cit.setAnnotations(annotations); ret.add(cit);
514     label_8:
515     while (true) {
516       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
517       case COMMA:
518         ;
519         break;
520       default:
521         jj_la1[16] = jj_gen;
522         break label_8;
523       }
524       jj_consume_token(COMMA);
525       cit = ClassOrInterfaceType();
526                                         ret.add(cit);
527     }
528       if (isInterface)
529          throwParseException(token, "An interface cannot implement other interfaces");
530      {if (true) return ret;}
531     throw new Error("Missing return statement in function");
532   }
533 
EnumDeclaration(Modifier modifier)534   final public EnumDeclaration EnumDeclaration(Modifier modifier) {
535         NameExpr name;
536         List impList = null;
537         EnumConstantDeclaration entry;
538         List entries = null;
539         BodyDeclaration member;
540         List members = null;
541         int line = modifier.beginLine;
542         int column = modifier.beginColumn;
543     jj_consume_token(ENUM);
544            if (line == -1) {line=token.beginLine; column=token.beginColumn;}
545     name = Name();
546     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
547     case IMPLEMENTS:
548       impList = ImplementsList(false);
549       break;
550     default:
551       jj_la1[17] = jj_gen;
552       ;
553     }
554     jj_consume_token(LBRACE);
555     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
556     case IDENTIFIER:
557     case AT:
558           entries = new LinkedList();
559       entry = EnumConstantDeclaration();
560                                             entries.add(entry);
561       label_9:
562       while (true) {
563         if (jj_2_3(2)) {
564           ;
565         } else {
566           break label_9;
567         }
568         jj_consume_token(COMMA);
569         entry = EnumConstantDeclaration();
570                                                                                                                          entries.add(entry);
571       }
572       break;
573     default:
574       jj_la1[18] = jj_gen;
575       ;
576     }
577     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
578     case COMMA:
579       jj_consume_token(COMMA);
580       break;
581     default:
582       jj_la1[19] = jj_gen;
583       ;
584     }
585     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
586     case SEMICOLON:
587       jj_consume_token(SEMICOLON);
588       label_10:
589       while (true) {
590         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
591         case ABSTRACT:
592         case BOOLEAN:
593         case BYTE:
594         case CHAR:
595         case CLASS:
596         case _DEFAULT:
597         case DOUBLE:
598         case ENUM:
599         case FINAL:
600         case FLOAT:
601         case INT:
602         case INTERFACE:
603         case LONG:
604         case NATIVE:
605         case PRIVATE:
606         case PROTECTED:
607         case PUBLIC:
608         case SHORT:
609         case STATIC:
610         case STRICTFP:
611         case SYNCHRONIZED:
612         case TRANSIENT:
613         case VOID:
614         case VOLATILE:
615         case IDENTIFIER:
616         case LBRACE:
617         case SEMICOLON:
618         case AT:
619         case LT:
620           ;
621           break;
622         default:
623           jj_la1[20] = jj_gen;
624           break label_10;
625         }
626         member = ClassOrInterfaceBodyDeclaration(false);
627                                                                           members = add(members, member);
628       }
629       break;
630     default:
631       jj_la1[21] = jj_gen;
632       ;
633     }
634     jj_consume_token(RBRACE);
635       EnumDeclaration tmp = new EnumDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, null, impList, entries, members);
636       tmp.setNameExpr(name);
637       {if (true) return tmp;}
638     throw new Error("Missing return statement in function");
639   }
640 
EnumConstantDeclaration()641   final public EnumConstantDeclaration EnumConstantDeclaration() {
642         List annotations = null;
643         AnnotationExpr ann;
644         String name;
645         List args = null;
646         List classBody = null;
647         int line = -1;
648         int column = -1;
649 
650     label_11:
651     while (true) {
652       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
653       case AT:
654         ;
655         break;
656       default:
657         jj_la1[22] = jj_gen;
658         break label_11;
659       }
660       ann = Annotation();
661                          annotations = add(annotations, ann); if(line==-1){line=ann.getBeginLine(); column=ann.getBeginColumn();}
662     }
663     jj_consume_token(IDENTIFIER);
664                  name = token.image; if(line==-1){line=token.beginLine; column=token.beginColumn;}
665     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
666     case LPAREN:
667       args = Arguments();
668       break;
669     default:
670       jj_la1[23] = jj_gen;
671       ;
672     }
673     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
674     case LBRACE:
675       classBody = ClassOrInterfaceBody(false);
676       break;
677     default:
678       jj_la1[24] = jj_gen;
679       ;
680     }
681       EnumConstantDeclaration tmp = new EnumConstantDeclaration(line, column, token.endLine, token.endColumn, annotations, name, args, classBody);
682 
683       {if (true) return tmp;}
684     throw new Error("Missing return statement in function");
685   }
686 
TypeParameters()687   final public List TypeParameters() {
688         List ret = new LinkedList();
689         TypeParameter tp;
690         List annotations = null;
691         AnnotationExpr ann;
692     jj_consume_token(LT);
693          ret.add(new int[]{token.beginLine, token.beginColumn});
694     label_12:
695     while (true) {
696       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
697       case AT:
698         ;
699         break;
700       default:
701         jj_la1[25] = jj_gen;
702         break label_12;
703       }
704       ann = Annotation();
705                            annotations = add(annotations, ann);
706     }
707     tp = TypeParameter();
708                           ret.add(tp); tp.setAnnotations(annotations); annotations = null;
709     label_13:
710     while (true) {
711       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
712       case COMMA:
713         ;
714         break;
715       default:
716         jj_la1[26] = jj_gen;
717         break label_13;
718       }
719       jj_consume_token(COMMA);
720       label_14:
721       while (true) {
722         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
723         case AT:
724           ;
725           break;
726         default:
727           jj_la1[27] = jj_gen;
728           break label_14;
729         }
730         ann = Annotation();
731                                  annotations = add(annotations, ann);
732       }
733       tp = TypeParameter();
734                                                                                                 ret.add(tp); tp.setAnnotations(annotations); annotations = null;
735     }
736     jj_consume_token(GT);
737      {if (true) return ret;}
738     throw new Error("Missing return statement in function");
739   }
740 
TypeParameter()741   final public TypeParameter TypeParameter() {
742         String name;
743         List typeBound = null;
744         int line;
745         int column;
746     jj_consume_token(IDENTIFIER);
747                   name = token.image; line=token.beginLine; column=token.beginColumn;
748     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
749     case EXTENDS:
750       typeBound = TypeBound();
751       break;
752     default:
753       jj_la1[28] = jj_gen;
754       ;
755     }
756      {if (true) return new TypeParameter(line, column, token.endLine, token.endColumn,name, typeBound);}
757     throw new Error("Missing return statement in function");
758   }
759 
TypeBound()760   final public List TypeBound() {
761         List ret = new LinkedList();
762         ClassOrInterfaceType cit;
763         AnnotationExpr ann;
764         List annotations = null;
765     jj_consume_token(EXTENDS);
766     label_15:
767     while (true) {
768       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
769       case AT:
770         ;
771         break;
772       default:
773         jj_la1[29] = jj_gen;
774         break label_15;
775       }
776       ann = Annotation();
777                                      annotations = add(annotations, ann);
778     }
779     cit = ClassOrInterfaceType();
780                                                                                                             cit.setAnnotations(annotations); ret.add(cit); annotations=null;
781     label_16:
782     while (true) {
783       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
784       case BIT_AND:
785         ;
786         break;
787       default:
788         jj_la1[30] = jj_gen;
789         break label_16;
790       }
791       jj_consume_token(BIT_AND);
792       label_17:
793       while (true) {
794         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
795         case AT:
796           ;
797           break;
798         default:
799           jj_la1[31] = jj_gen;
800           break label_17;
801         }
802         ann = Annotation();
803                                    annotations = add(annotations, ann);
804       }
805       cit = ClassOrInterfaceType();
806                                                                                                            cit.setAnnotations(annotations); ret.add(cit); annotations=null;
807     }
808      {if (true) return ret;}
809     throw new Error("Missing return statement in function");
810   }
811 
ClassOrInterfaceBody(boolean isInterface)812   final public List ClassOrInterfaceBody(boolean isInterface) {
813         List ret = new LinkedList();
814         BodyDeclaration member;
815     jj_consume_token(LBRACE);
816     label_18:
817     while (true) {
818       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
819       case ABSTRACT:
820       case BOOLEAN:
821       case BYTE:
822       case CHAR:
823       case CLASS:
824       case _DEFAULT:
825       case DOUBLE:
826       case ENUM:
827       case FINAL:
828       case FLOAT:
829       case INT:
830       case INTERFACE:
831       case LONG:
832       case NATIVE:
833       case PRIVATE:
834       case PROTECTED:
835       case PUBLIC:
836       case SHORT:
837       case STATIC:
838       case STRICTFP:
839       case SYNCHRONIZED:
840       case TRANSIENT:
841       case VOID:
842       case VOLATILE:
843       case IDENTIFIER:
844       case LBRACE:
845       case SEMICOLON:
846       case AT:
847       case LT:
848         ;
849         break;
850       default:
851         jj_la1[32] = jj_gen;
852         break label_18;
853       }
854       member = ClassOrInterfaceBodyDeclaration(isInterface);
855                                                                 ret.add(member);
856     }
857     jj_consume_token(RBRACE);
858     {if (true) return ret;}
859     throw new Error("Missing return statement in function");
860   }
861 
ClassOrInterfaceBodyDeclaration(boolean isInterface)862   final public BodyDeclaration ClassOrInterfaceBodyDeclaration(boolean isInterface) {
863    boolean isNestedInterface = false;
864    Modifier modifier;
865    Modifier modifier2 = null;
866    int aux = 0;
867    BodyDeclaration ret;
868    boolean isDefault = false;
869 
870     if (jj_2_6(2)) {
871       ret = InitializerDeclaration();
872              if (isInterface)
873                 throwParseException(token, "An interface cannot have initializers");
874     } else {
875       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
876       case ABSTRACT:
877       case BOOLEAN:
878       case BYTE:
879       case CHAR:
880       case CLASS:
881       case _DEFAULT:
882       case DOUBLE:
883       case ENUM:
884       case FINAL:
885       case FLOAT:
886       case INT:
887       case INTERFACE:
888       case LONG:
889       case NATIVE:
890       case PRIVATE:
891       case PROTECTED:
892       case PUBLIC:
893       case SHORT:
894       case STATIC:
895       case STRICTFP:
896       case SYNCHRONIZED:
897       case TRANSIENT:
898       case VOID:
899       case VOLATILE:
900       case IDENTIFIER:
901       case AT:
902       case LT:
903         modifier = Modifiers();
904         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
905         case _DEFAULT:
906           jj_consume_token(_DEFAULT);
907           modifier2 = Modifiers();
908             if(!isInterface)
909             {
910               throwParseException(token, "An interface cannot have default members");
911             }
912             isDefault = true;
913           break;
914         default:
915           jj_la1[33] = jj_gen;
916           ;
917         }
918         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
919         case CLASS:
920         case INTERFACE:
921           ret = ClassOrInterfaceDeclaration(modifier);
922           break;
923         case ENUM:
924           ret = EnumDeclaration(modifier);
925           break;
926         case AT:
927           ret = AnnotationTypeDeclaration(modifier);
928           break;
929         default:
930           jj_la1[34] = jj_gen;
931           if (jj_2_4(2147483647)) {
932             ret = ConstructorDeclaration(modifier);
933           } else if (jj_2_5(2147483647)) {
934             ret = FieldDeclaration(modifier);
935           } else {
936             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
937             case BOOLEAN:
938             case BYTE:
939             case CHAR:
940             case DOUBLE:
941             case FLOAT:
942             case INT:
943             case LONG:
944             case SHORT:
945             case VOID:
946             case IDENTIFIER:
947             case LT:
948               ret = MethodDeclaration(modifier);
949                 if(isDefault && ret!= null && ((MethodDeclaration)ret).getBody() == null)
950                 {
951                   throwParseException(token, "\"default\" methods must have a body");
952                 }
953                 ((MethodDeclaration)ret).setDefault(isDefault);
954                 if(modifier2!= null)
955                 {
956                   aux = modifier2.modifiers;
957                 }
958                 ((MethodDeclaration)ret).setModifiers(addModifier(modifier.modifiers, aux, token));
959               break;
960             default:
961               jj_la1[35] = jj_gen;
962               jj_consume_token(-1);
963               throw new ParseException();
964             }
965           }
966         }
967             if(isDefault && ! (ret instanceof MethodDeclaration))
968             {
969               throwParseException(token, "Just methods can have the keyword \"default\".");
970             }
971         break;
972       case SEMICOLON:
973         jj_consume_token(SEMICOLON);
974                 ret = new EmptyMemberDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
975         break;
976       default:
977         jj_la1[36] = jj_gen;
978         jj_consume_token(-1);
979         throw new ParseException();
980       }
981     }
982     {if (true) return ret;}
983     throw new Error("Missing return statement in function");
984   }
985 
FieldDeclaration(Modifier modifier)986   final public FieldDeclaration FieldDeclaration(Modifier modifier) {
987         Type type;
988         List variables = new LinkedList();
989         VariableDeclarator val;
990     // Modifiers are already matched in the caller
991       type = Type();
992     val = VariableDeclarator();
993                                      variables.add(val);
994     label_19:
995     while (true) {
996       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
997       case COMMA:
998         ;
999         break;
1000       default:
1001         jj_la1[37] = jj_gen;
1002         break label_19;
1003       }
1004       jj_consume_token(COMMA);
1005       val = VariableDeclarator();
1006                                      variables.add(val);
1007     }
1008     jj_consume_token(SEMICOLON);
1009         int line = modifier.beginLine;
1010         int column = modifier.beginColumn;
1011         if (line == -1) { line=type.getBeginLine(); column=type.getBeginColumn(); }
1012         {if (true) return new FieldDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, variables);}
1013     throw new Error("Missing return statement in function");
1014   }
1015 
VariableDeclarator()1016   final public VariableDeclarator VariableDeclarator() {
1017         VariableDeclaratorId id;
1018         Expression init = null;
1019     id = VariableDeclaratorId();
1020     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1021     case ASSIGN:
1022       jj_consume_token(ASSIGN);
1023       init = VariableInitializer();
1024       break;
1025     default:
1026       jj_la1[38] = jj_gen;
1027       ;
1028     }
1029     {if (true) return new  VariableDeclarator(id.getBeginLine(), id.getBeginColumn(), token.endLine, token.endColumn, id, init);}
1030     throw new Error("Missing return statement in function");
1031   }
1032 
VariableDeclaratorId()1033   final public VariableDeclaratorId VariableDeclaratorId() {
1034         String name;
1035         int arrayCount = 0;
1036         int line;
1037         int column;
1038     jj_consume_token(IDENTIFIER);
1039                  name = token.image; line=token.beginLine; column=token.beginColumn;
1040     label_20:
1041     while (true) {
1042       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1043       case LBRACKET:
1044         ;
1045         break;
1046       default:
1047         jj_la1[39] = jj_gen;
1048         break label_20;
1049       }
1050       jj_consume_token(LBRACKET);
1051       jj_consume_token(RBRACKET);
1052                                                                                                    arrayCount++;
1053     }
1054     {if (true) return new VariableDeclaratorId(line, column, token.endLine, token.endColumn,name, arrayCount);}
1055     throw new Error("Missing return statement in function");
1056   }
1057 
VariableInitializer()1058   final public Expression VariableInitializer() {
1059         Expression ret;
1060     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1061     case LBRACE:
1062       ret = ArrayInitializer();
1063       break;
1064     case BOOLEAN:
1065     case BYTE:
1066     case CHAR:
1067     case DOUBLE:
1068     case FALSE:
1069     case FLOAT:
1070     case INT:
1071     case LONG:
1072     case NEW:
1073     case NULL:
1074     case SHORT:
1075     case SUPER:
1076     case THIS:
1077     case TRUE:
1078     case VOID:
1079     case LONG_LITERAL:
1080     case INTEGER_LITERAL:
1081     case FLOATING_POINT_LITERAL:
1082     case CHARACTER_LITERAL:
1083     case STRING_LITERAL:
1084     case IDENTIFIER:
1085     case LPAREN:
1086     case BANG:
1087     case TILDE:
1088     case INCR:
1089     case DECR:
1090     case PLUS:
1091     case MINUS:
1092       ret = Expression();
1093       break;
1094     default:
1095       jj_la1[40] = jj_gen;
1096       jj_consume_token(-1);
1097       throw new ParseException();
1098     }
1099     {if (true) return ret;}
1100     throw new Error("Missing return statement in function");
1101   }
1102 
ArrayInitializer()1103   final public ArrayInitializerExpr ArrayInitializer() {
1104         List values = null;
1105         Expression val;
1106         int line;
1107         int column;
1108     jj_consume_token(LBRACE);
1109        line=token.beginLine; column=token.beginColumn;
1110     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1111     case BOOLEAN:
1112     case BYTE:
1113     case CHAR:
1114     case DOUBLE:
1115     case FALSE:
1116     case FLOAT:
1117     case INT:
1118     case LONG:
1119     case NEW:
1120     case NULL:
1121     case SHORT:
1122     case SUPER:
1123     case THIS:
1124     case TRUE:
1125     case VOID:
1126     case LONG_LITERAL:
1127     case INTEGER_LITERAL:
1128     case FLOATING_POINT_LITERAL:
1129     case CHARACTER_LITERAL:
1130     case STRING_LITERAL:
1131     case IDENTIFIER:
1132     case LPAREN:
1133     case LBRACE:
1134     case BANG:
1135     case TILDE:
1136     case INCR:
1137     case DECR:
1138     case PLUS:
1139     case MINUS:
1140       val = VariableInitializer();
1141                                                                                         values = add(values, val);
1142       label_21:
1143       while (true) {
1144         if (jj_2_7(2)) {
1145           ;
1146         } else {
1147           break label_21;
1148         }
1149         jj_consume_token(COMMA);
1150         val = VariableInitializer();
1151                                                                                                                                                                       values = add(values, val);
1152       }
1153       break;
1154     default:
1155       jj_la1[41] = jj_gen;
1156       ;
1157     }
1158     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1159     case COMMA:
1160       jj_consume_token(COMMA);
1161       break;
1162     default:
1163       jj_la1[42] = jj_gen;
1164       ;
1165     }
1166     jj_consume_token(RBRACE);
1167     {if (true) return new ArrayInitializerExpr(line, column, token.endLine, token.endColumn,values);}
1168     throw new Error("Missing return statement in function");
1169   }
1170 
MethodDeclaration(Modifier modifier)1171   final public MethodDeclaration MethodDeclaration(Modifier modifier) {
1172         List typeParameters = null;
1173         Type type;
1174         NameExpr name;
1175         List parameters;
1176         int arrayCount = 0;
1177         List throws_ = null;
1178         BlockStmt block = null;
1179         int line = modifier.beginLine;
1180         int column = modifier.beginColumn;
1181     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1182     case LT:
1183       typeParameters = TypeParameters();
1184                                         int[] lineCol=(int[])typeParameters.remove(0); if(line==-1){ line=lineCol[0]; column=lineCol[1];}
1185       break;
1186     default:
1187       jj_la1[43] = jj_gen;
1188       ;
1189     }
1190     type = ResultType();
1191                         if(line==-1){line=type.getBeginLine(); column=type.getBeginColumn();}
1192     name = Name();
1193     parameters = FormalParameters();
1194     label_22:
1195     while (true) {
1196       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1197       case LBRACKET:
1198         ;
1199         break;
1200       default:
1201         jj_la1[44] = jj_gen;
1202         break label_22;
1203       }
1204       jj_consume_token(LBRACKET);
1205       jj_consume_token(RBRACKET);
1206                                                             arrayCount++;
1207     }
1208     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1209     case THROWS:
1210       jj_consume_token(THROWS);
1211       throws_ = NameList();
1212       break;
1213     default:
1214       jj_la1[45] = jj_gen;
1215       ;
1216     }
1217     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1218     case LBRACE:
1219       block = Block();
1220       break;
1221     case SEMICOLON:
1222       jj_consume_token(SEMICOLON);
1223       break;
1224     default:
1225       jj_la1[46] = jj_gen;
1226       jj_consume_token(-1);
1227       throw new ParseException();
1228     }
1229       MethodDeclaration tmp = new MethodDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, typeParameters, type, null, parameters, arrayCount, throws_, block);
1230       tmp.setNameExpr(name);
1231       {if (true) return tmp;}
1232     throw new Error("Missing return statement in function");
1233   }
1234 
FormalParameters()1235   final public List FormalParameters() {
1236         List ret = null;
1237         Parameter par;
1238     jj_consume_token(LPAREN);
1239     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1240     case ABSTRACT:
1241     case BOOLEAN:
1242     case BYTE:
1243     case CHAR:
1244     case DOUBLE:
1245     case FINAL:
1246     case FLOAT:
1247     case INT:
1248     case LONG:
1249     case NATIVE:
1250     case PRIVATE:
1251     case PROTECTED:
1252     case PUBLIC:
1253     case SHORT:
1254     case STATIC:
1255     case STRICTFP:
1256     case SYNCHRONIZED:
1257     case TRANSIENT:
1258     case VOLATILE:
1259     case IDENTIFIER:
1260     case AT:
1261       par = FormalParameter();
1262                                   ret = add(ret, par);
1263       label_23:
1264       while (true) {
1265         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1266         case COMMA:
1267           ;
1268           break;
1269         default:
1270           jj_la1[47] = jj_gen;
1271           break label_23;
1272         }
1273         jj_consume_token(COMMA);
1274         par = FormalParameter();
1275                                                                                          ret = add(ret, par);
1276       }
1277       break;
1278     default:
1279       jj_la1[48] = jj_gen;
1280       ;
1281     }
1282     jj_consume_token(RPAREN);
1283     {if (true) return ret;}
1284     throw new Error("Missing return statement in function");
1285   }
1286 
FormalLambdaParameters()1287   final public List FormalLambdaParameters() {
1288   List ret = null;
1289   Parameter par;
1290     jj_consume_token(COMMA);
1291     par = FormalParameter();
1292                                    ret = add(ret, par);
1293     label_24:
1294     while (true) {
1295       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1296       case COMMA:
1297         ;
1298         break;
1299       default:
1300         jj_la1[49] = jj_gen;
1301         break label_24;
1302       }
1303       jj_consume_token(COMMA);
1304       par = FormalParameter();
1305                                                                                            ret = add(ret, par);
1306     }
1307     {if (true) return ret;}
1308     throw new Error("Missing return statement in function");
1309   }
1310 
InferredLambdaParameters()1311   final public List InferredLambdaParameters() {
1312   List ret = null;
1313   VariableDeclaratorId id;
1314     jj_consume_token(COMMA);
1315     id = VariableDeclaratorId();
1316                                           ret = add(ret, new Parameter(id.getBeginLine(), id.getBeginColumn(), id.getEndLine(), id.getEndColumn(), 0, null, new UnknownType(), false, id));
1317     label_25:
1318     while (true) {
1319       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1320       case COMMA:
1321         ;
1322         break;
1323       default:
1324         jj_la1[50] = jj_gen;
1325         break label_25;
1326       }
1327       jj_consume_token(COMMA);
1328       id = VariableDeclaratorId();
1329                                        ret = add(ret, new Parameter(id.getBeginLine(), id.getBeginColumn(), id.getEndLine(), id.getEndColumn(), 0, null, new UnknownType(), false, id));
1330     }
1331     {if (true) return ret;}
1332     throw new Error("Missing return statement in function");
1333   }
1334 
FormalParameter()1335   final public Parameter FormalParameter() {
1336         Modifier modifier;
1337         Type type;
1338         boolean isVarArg = false;
1339         VariableDeclaratorId id;
1340     modifier = Modifiers();
1341     type = Type();
1342     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1343     case ELLIPSIS:
1344       jj_consume_token(ELLIPSIS);
1345                                                  isVarArg = true;
1346       break;
1347     default:
1348       jj_la1[51] = jj_gen;
1349       ;
1350     }
1351     id = VariableDeclaratorId();
1352     int line = modifier.beginLine;
1353     int column = modifier.beginColumn;
1354     if(line==-1){ line=type.getBeginLine(); column=type.getBeginColumn(); }
1355     {if (true) return new Parameter(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, isVarArg, id);}
1356     throw new Error("Missing return statement in function");
1357   }
1358 
ConstructorDeclaration(Modifier modifier)1359   final public ConstructorDeclaration ConstructorDeclaration(Modifier modifier) {
1360         List typeParameters = null;
1361         NameExpr name;
1362         List parameters;
1363         List throws_ = null;
1364         ExplicitConstructorInvocationStmt exConsInv = null;
1365         List stmts;
1366         int line = modifier.beginLine;
1367         int column = modifier.beginColumn;
1368         int bbLine = 0;
1369         int bbColumn = 0;
1370         int beLine = 0;
1371         int beColumn = 0;
1372     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1373     case LT:
1374       typeParameters = TypeParameters();
1375                                         int[] lineCol=(int[])typeParameters.remove(0); if(line==-1){ line=lineCol[0]; column=lineCol[1];}
1376       break;
1377     default:
1378       jj_la1[52] = jj_gen;
1379       ;
1380     }
1381     // Modifiers matched in the caller
1382       name = SimpleName();
1383                         if(line==-1){line=token.beginLine; column=token.beginColumn;}
1384     parameters = FormalParameters();
1385     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1386     case THROWS:
1387       jj_consume_token(THROWS);
1388       throws_ = NameList();
1389       break;
1390     default:
1391       jj_la1[53] = jj_gen;
1392       ;
1393     }
1394     jj_consume_token(LBRACE);
1395         bbLine=token.beginLine; bbColumn=token.beginColumn;
1396     if (jj_2_8(2147483647)) {
1397       exConsInv = ExplicitConstructorInvocation();
1398     } else {
1399       ;
1400     }
1401     stmts = Statements();
1402     jj_consume_token(RBRACE);
1403         if (exConsInv != null) {
1404                 stmts = add(0, stmts, exConsInv);
1405         }
1406         ConstructorDeclaration tmp = new ConstructorDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, typeParameters, null, parameters, throws_, new BlockStmt(bbLine, bbColumn, token.endLine, token.endColumn, stmts));
1407     tmp.setNameExpr(name);
1408     {if (true) return tmp;}
1409     throw new Error("Missing return statement in function");
1410   }
1411 
ExplicitConstructorInvocation()1412   final public ExplicitConstructorInvocationStmt ExplicitConstructorInvocation() {
1413         boolean isThis = false;
1414         List args;
1415         Expression expr = null;
1416         List typeArgs = null;
1417         int line = -1;
1418         int column = 0;
1419     if (jj_2_10(2147483647)) {
1420       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1421       case LT:
1422       case 132:
1423         typeArgs = TypeArguments();
1424                                          int[] lineCol=(int[])typeArgs.remove(0); line=lineCol[0]; column=lineCol[1];
1425         break;
1426       default:
1427         jj_la1[54] = jj_gen;
1428         ;
1429       }
1430       jj_consume_token(THIS);
1431                    if (line == -1) {line=token.beginLine; column=token.beginColumn;} isThis = true;
1432       args = Arguments();
1433       jj_consume_token(SEMICOLON);
1434     } else {
1435       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1436       case BOOLEAN:
1437       case BYTE:
1438       case CHAR:
1439       case DOUBLE:
1440       case FALSE:
1441       case FLOAT:
1442       case INT:
1443       case LONG:
1444       case NEW:
1445       case NULL:
1446       case SHORT:
1447       case SUPER:
1448       case THIS:
1449       case TRUE:
1450       case VOID:
1451       case LONG_LITERAL:
1452       case INTEGER_LITERAL:
1453       case FLOATING_POINT_LITERAL:
1454       case CHARACTER_LITERAL:
1455       case STRING_LITERAL:
1456       case IDENTIFIER:
1457       case LPAREN:
1458       case LT:
1459       case 132:
1460         if (jj_2_9(2147483647)) {
1461           expr = PrimaryExpressionWithoutSuperSuffix();
1462           jj_consume_token(DOT);
1463                   line=expr.getBeginLine(); column=expr.getBeginColumn();
1464         } else {
1465           ;
1466         }
1467         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1468         case LT:
1469         case 132:
1470           typeArgs = TypeArguments();
1471                                         int[] lineCol=(int[])typeArgs.remove(0); if (line == -1) {line=lineCol[0]; column=lineCol[1];}
1472           break;
1473         default:
1474           jj_la1[55] = jj_gen;
1475           ;
1476         }
1477         jj_consume_token(SUPER);
1478                    if (line == -1) {line=token.beginLine; column=token.beginColumn;}
1479         args = Arguments();
1480         jj_consume_token(SEMICOLON);
1481         break;
1482       default:
1483         jj_la1[56] = jj_gen;
1484         jj_consume_token(-1);
1485         throw new ParseException();
1486       }
1487     }
1488     {if (true) return new ExplicitConstructorInvocationStmt(line, column, token.endLine, token.endColumn,typeArgs, isThis, expr, args);}
1489     throw new Error("Missing return statement in function");
1490   }
1491 
Statements()1492   final public List Statements() {
1493         List ret = null;
1494         Statement stmt;
1495     label_26:
1496     while (true) {
1497       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1498       case ABSTRACT:
1499       case ASSERT:
1500       case BOOLEAN:
1501       case BREAK:
1502       case BYTE:
1503       case CHAR:
1504       case CLASS:
1505       case CONTINUE:
1506       case DO:
1507       case DOUBLE:
1508       case FALSE:
1509       case FINAL:
1510       case FLOAT:
1511       case FOR:
1512       case IF:
1513       case INT:
1514       case INTERFACE:
1515       case LONG:
1516       case NATIVE:
1517       case NEW:
1518       case NULL:
1519       case PRIVATE:
1520       case PROTECTED:
1521       case PUBLIC:
1522       case RETURN:
1523       case SHORT:
1524       case STATIC:
1525       case STRICTFP:
1526       case SUPER:
1527       case SWITCH:
1528       case SYNCHRONIZED:
1529       case THIS:
1530       case THROW:
1531       case TRANSIENT:
1532       case TRUE:
1533       case TRY:
1534       case VOID:
1535       case VOLATILE:
1536       case WHILE:
1537       case LONG_LITERAL:
1538       case INTEGER_LITERAL:
1539       case FLOATING_POINT_LITERAL:
1540       case CHARACTER_LITERAL:
1541       case STRING_LITERAL:
1542       case IDENTIFIER:
1543       case LPAREN:
1544       case LBRACE:
1545       case SEMICOLON:
1546       case AT:
1547       case INCR:
1548       case DECR:
1549         ;
1550         break;
1551       default:
1552         jj_la1[57] = jj_gen;
1553         break label_26;
1554       }
1555       stmt = BlockStatement();
1556                                     ret = add(ret, stmt);
1557     }
1558           {if (true) return ret;}
1559     throw new Error("Missing return statement in function");
1560   }
1561 
InitializerDeclaration()1562   final public InitializerDeclaration InitializerDeclaration() {
1563         BlockStmt block;
1564         int line = -1;
1565         int column = 0;
1566         boolean isStatic = false;
1567     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1568     case STATIC:
1569       jj_consume_token(STATIC);
1570                isStatic = true; line=token.beginLine; column=token.beginColumn;
1571       break;
1572     default:
1573       jj_la1[58] = jj_gen;
1574       ;
1575     }
1576     block = Block();
1577                                                                                                     if(line==-1){line=block.getBeginLine(); column=block.getBeginColumn();}
1578     {if (true) return new InitializerDeclaration(line, column, token.endLine, token.endColumn, isStatic, block);}
1579     throw new Error("Missing return statement in function");
1580   }
1581 
1582 /*
1583  * Type, name and expression syntax follows.
1584  */
Type()1585   final public Type Type() {
1586         Type ret;
1587     if (jj_2_11(2)) {
1588       ret = ReferenceType();
1589     } else {
1590       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1591       case BOOLEAN:
1592       case BYTE:
1593       case CHAR:
1594       case DOUBLE:
1595       case FLOAT:
1596       case INT:
1597       case LONG:
1598       case SHORT:
1599         ret = PrimitiveType();
1600         break;
1601       default:
1602         jj_la1[59] = jj_gen;
1603         jj_consume_token(-1);
1604         throw new ParseException();
1605       }
1606     }
1607    {if (true) return ret;}
1608     throw new Error("Missing return statement in function");
1609   }
1610 
ReferenceType()1611   final public ReferenceType ReferenceType() {
1612         Type type;
1613         int arrayCount = 0;
1614         List annotations = null;
1615         List accum= null;
1616         AnnotationExpr ann;
1617     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1618     case BOOLEAN:
1619     case BYTE:
1620     case CHAR:
1621     case DOUBLE:
1622     case FLOAT:
1623     case INT:
1624     case LONG:
1625     case SHORT:
1626       type = PrimitiveType();
1627       label_27:
1628       while (true) {
1629         label_28:
1630         while (true) {
1631           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1632           case AT:
1633             ;
1634             break;
1635           default:
1636             jj_la1[60] = jj_gen;
1637             break label_28;
1638           }
1639           ann = Annotation();
1640                                                                   annotations = add(annotations, ann);
1641         }
1642         jj_consume_token(LBRACKET);
1643         jj_consume_token(RBRACKET);
1644                                                                                                                       arrayCount++; accum = add(accum, annotations); annotations= null;
1645         if (jj_2_12(2)) {
1646           ;
1647         } else {
1648           break label_27;
1649         }
1650       }
1651       break;
1652     case IDENTIFIER:
1653       type = ClassOrInterfaceType();
1654       label_29:
1655       while (true) {
1656         if (jj_2_13(2)) {
1657           ;
1658         } else {
1659           break label_29;
1660         }
1661         label_30:
1662         while (true) {
1663           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1664           case AT:
1665             ;
1666             break;
1667           default:
1668             jj_la1[61] = jj_gen;
1669             break label_30;
1670           }
1671           ann = Annotation();
1672                                                                          annotations = add(annotations, ann);
1673         }
1674         jj_consume_token(LBRACKET);
1675         jj_consume_token(RBRACKET);
1676                                                                                                                              arrayCount++; accum = add(accum, annotations); annotations= null;
1677       }
1678       break;
1679     default:
1680       jj_la1[62] = jj_gen;
1681       jj_consume_token(-1);
1682       throw new ParseException();
1683     }
1684     {if (true) return new ReferenceType(type.getBeginLine(), type.getBeginColumn(), token.endLine, token.endColumn, type, arrayCount, null, accum);}
1685     throw new Error("Missing return statement in function");
1686   }
1687 
ClassOrInterfaceType()1688   final public ClassOrInterfaceType ClassOrInterfaceType() {
1689         ClassOrInterfaceType ret;
1690         String name;
1691         List typeArgs = null;
1692         int line;
1693         int column;
1694         List annotations = null;
1695         AnnotationExpr ann;
1696     jj_consume_token(IDENTIFIER);
1697                 line=token.beginLine; column=token.beginColumn;
1698                                                                    name = token.image;
1699     if (jj_2_14(2)) {
1700       typeArgs = TypeArguments();
1701                                              typeArgs.remove(0);
1702     } else {
1703       ;
1704     }
1705     ret = new ClassOrInterfaceType(line, column, token.endLine, token.endColumn,null, name, typeArgs);
1706     label_31:
1707     while (true) {
1708       if (jj_2_15(2)) {
1709         ;
1710       } else {
1711         break label_31;
1712       }
1713       jj_consume_token(DOT);
1714       label_32:
1715       while (true) {
1716         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1717         case AT:
1718           ;
1719           break;
1720         default:
1721           jj_la1[63] = jj_gen;
1722           break label_32;
1723         }
1724         ann = Annotation();
1725                                                    annotations = add(annotations, ann);
1726       }
1727       jj_consume_token(IDENTIFIER);
1728                                                                                                            name = token.image;
1729       if (jj_2_16(2)) {
1730         typeArgs = TypeArguments();
1731                                                      typeArgs.remove(0);
1732       } else {
1733         ;
1734       }
1735                                                                               ret = new ClassOrInterfaceType(line, column, token.endLine, token.endColumn,ret, name, typeArgs); ret.setAnnotations(annotations); annotations = null;
1736     }
1737     {if (true) return ret;}
1738     throw new Error("Missing return statement in function");
1739   }
1740 
TypeArguments()1741   final public List TypeArguments() {
1742         List ret = new LinkedList();
1743         Type type;
1744     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1745     case LT:
1746       jj_consume_token(LT);
1747            ret.add(new int[]{token.beginLine, token.beginColumn});
1748       type = TypeArgument();
1749                              ret.add(type);
1750       label_33:
1751       while (true) {
1752         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1753         case COMMA:
1754           ;
1755           break;
1756         default:
1757           jj_la1[64] = jj_gen;
1758           break label_33;
1759         }
1760         jj_consume_token(COMMA);
1761         type = TypeArgument();
1762                                                                             ret.add(type);
1763       }
1764       jj_consume_token(GT);
1765      {if (true) return ret;}
1766       break;
1767     case 132:
1768       jj_consume_token(132);
1769           ret.add(null);
1770      {if (true) return ret;}
1771       break;
1772     default:
1773       jj_la1[65] = jj_gen;
1774       jj_consume_token(-1);
1775       throw new ParseException();
1776     }
1777     throw new Error("Missing return statement in function");
1778   }
1779 
TypeArgument()1780   final public Type TypeArgument() {
1781         Type ret;
1782         List annotations = null;
1783         AnnotationExpr ann;
1784     label_34:
1785     while (true) {
1786       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1787       case AT:
1788         ;
1789         break;
1790       default:
1791         jj_la1[66] = jj_gen;
1792         break label_34;
1793       }
1794       ann = Annotation();
1795                           annotations = add(annotations, ann);
1796     }
1797     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1798     case BOOLEAN:
1799     case BYTE:
1800     case CHAR:
1801     case DOUBLE:
1802     case FLOAT:
1803     case INT:
1804     case LONG:
1805     case SHORT:
1806     case IDENTIFIER:
1807       ret = ReferenceType();
1808       break;
1809     case HOOK:
1810       ret = Wildcard();
1811       break;
1812     default:
1813       jj_la1[67] = jj_gen;
1814       jj_consume_token(-1);
1815       throw new ParseException();
1816     }
1817    ret.setAnnotations(annotations); {if (true) return ret;}
1818     throw new Error("Missing return statement in function");
1819   }
1820 
Wildcard()1821   final public WildcardType Wildcard() {
1822         ReferenceType ext = null;
1823         ReferenceType sup = null;
1824         int line;
1825         int column;
1826         AnnotationExpr ann;
1827         List annotations = null;
1828     jj_consume_token(HOOK);
1829         line=token.beginLine; column=token.beginColumn;
1830     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1831     case EXTENDS:
1832     case SUPER:
1833       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1834       case EXTENDS:
1835         jj_consume_token(EXTENDS);
1836         label_35:
1837         while (true) {
1838           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1839           case AT:
1840             ;
1841             break;
1842           default:
1843             jj_la1[68] = jj_gen;
1844             break label_35;
1845           }
1846           ann = Annotation();
1847                                                   annotations = add(annotations, ann);
1848         }
1849         ext = ReferenceType();
1850                   ext.setAnnotations(annotations);
1851         break;
1852       case SUPER:
1853         jj_consume_token(SUPER);
1854         label_36:
1855         while (true) {
1856           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1857           case AT:
1858             ;
1859             break;
1860           default:
1861             jj_la1[69] = jj_gen;
1862             break label_36;
1863           }
1864           ann = Annotation();
1865                                                 annotations = add(annotations, ann);
1866         }
1867         sup = ReferenceType();
1868                   sup.setAnnotations(annotations);
1869         break;
1870       default:
1871         jj_la1[70] = jj_gen;
1872         jj_consume_token(-1);
1873         throw new ParseException();
1874       }
1875       break;
1876     default:
1877       jj_la1[71] = jj_gen;
1878       ;
1879     }
1880      {if (true) return new WildcardType(line, column, token.endLine, token.endColumn,ext, sup);}
1881     throw new Error("Missing return statement in function");
1882   }
1883 
PrimitiveType()1884   final public PrimitiveType PrimitiveType() {
1885         PrimitiveType ret;
1886     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1887     case BOOLEAN:
1888       jj_consume_token(BOOLEAN);
1889               ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Boolean);
1890       break;
1891     case CHAR:
1892       jj_consume_token(CHAR);
1893            ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Char);
1894       break;
1895     case BYTE:
1896       jj_consume_token(BYTE);
1897            ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Byte);
1898       break;
1899     case SHORT:
1900       jj_consume_token(SHORT);
1901             ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Short);
1902       break;
1903     case INT:
1904       jj_consume_token(INT);
1905           ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Int);
1906       break;
1907     case LONG:
1908       jj_consume_token(LONG);
1909            ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Long);
1910       break;
1911     case FLOAT:
1912       jj_consume_token(FLOAT);
1913             ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Float);
1914       break;
1915     case DOUBLE:
1916       jj_consume_token(DOUBLE);
1917              ret = new PrimitiveType(token.beginLine, token.beginColumn, token.endLine, token.endColumn, PrimitiveType.Primitive.Double);
1918       break;
1919     default:
1920       jj_la1[72] = jj_gen;
1921       jj_consume_token(-1);
1922       throw new ParseException();
1923     }
1924   {if (true) return ret;}
1925     throw new Error("Missing return statement in function");
1926   }
1927 
ResultType()1928   final public Type ResultType() {
1929         Type ret;
1930     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1931     case VOID:
1932       jj_consume_token(VOID);
1933                    ret = new VoidType(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
1934       break;
1935     case BOOLEAN:
1936     case BYTE:
1937     case CHAR:
1938     case DOUBLE:
1939     case FLOAT:
1940     case INT:
1941     case LONG:
1942     case SHORT:
1943     case IDENTIFIER:
1944       ret = Type();
1945       break;
1946     default:
1947       jj_la1[73] = jj_gen;
1948       jj_consume_token(-1);
1949       throw new ParseException();
1950     }
1951     {if (true) return ret;}
1952     throw new Error("Missing return statement in function");
1953   }
1954 
Name()1955   final public NameExpr Name() {
1956         NameExpr ret;
1957     jj_consume_token(IDENTIFIER);
1958                  ret = new NameExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
1959     label_37:
1960     while (true) {
1961       if (jj_2_17(2)) {
1962         ;
1963       } else {
1964         break label_37;
1965       }
1966       jj_consume_token(DOT);
1967       jj_consume_token(IDENTIFIER);
1968                                     ret = new QualifiedNameExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, token.image);
1969     }
1970     {if (true) return ret;}
1971     throw new Error("Missing return statement in function");
1972   }
1973 
ClassOrInterfaceTypeList()1974   final public List ClassOrInterfaceTypeList() {
1975         List ret = new LinkedList();
1976         ClassOrInterfaceType type;
1977         List annotations= null;
1978         AnnotationExpr ann;
1979     label_38:
1980     while (true) {
1981       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1982       case AT:
1983         ;
1984         break;
1985       default:
1986         jj_la1[74] = jj_gen;
1987         break label_38;
1988       }
1989       ann = Annotation();
1990                           annotations = add(annotations, ann);
1991     }
1992     type = ClassOrInterfaceType();
1993                                                                                                     type.setAnnotations(annotations); ret.add(type); annotations=null;
1994     label_39:
1995     while (true) {
1996       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1997       case COMMA:
1998         ;
1999         break;
2000       default:
2001         jj_la1[75] = jj_gen;
2002         break label_39;
2003       }
2004       jj_consume_token(COMMA);
2005       label_40:
2006       while (true) {
2007         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2008         case AT:
2009           ;
2010           break;
2011         default:
2012           jj_la1[76] = jj_gen;
2013           break label_40;
2014         }
2015         ann = Annotation();
2016                                                                                                                                                                                                        annotations = add(annotations, ann);
2017       }
2018       type = ClassOrInterfaceType();
2019                                                                                                                                                                                                                                                                                  type.setAnnotations(annotations); ret.add(type); annotations=null;
2020     }
2021     {if (true) return ret;}
2022     throw new Error("Missing return statement in function");
2023   }
2024 
SimpleName()2025   final public NameExpr SimpleName() {
2026     NameExpr ret;
2027     jj_consume_token(IDENTIFIER);
2028                  ret = new NameExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
2029     {if (true) return ret;}
2030     throw new Error("Missing return statement in function");
2031   }
2032 
NameList()2033   final public List NameList() {
2034         List ret = new LinkedList();
2035         NameExpr name;
2036     name = Name();
2037                   ret.add(name);
2038     label_41:
2039     while (true) {
2040       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2041       case COMMA:
2042         ;
2043         break;
2044       default:
2045         jj_la1[77] = jj_gen;
2046         break label_41;
2047       }
2048       jj_consume_token(COMMA);
2049       name = Name();
2050                                                           ret.add(name);
2051     }
2052     {if (true) return ret;}
2053     throw new Error("Missing return statement in function");
2054   }
2055 
2056 /*
2057  * Expression syntax follows.
2058  */
Expression()2059   final public Expression Expression() {
2060         Expression ret;
2061         AssignExpr.Operator op;
2062         Expression value;
2063         Statement lambdaBody = null;
2064         List params = null;
2065         List typeArgs = null;
2066         VariableDeclaratorId id = null;
2067         Expression inner = null;
2068     ret = ConditionalExpression();
2069     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2070     case ASSIGN:
2071     case PLUSASSIGN:
2072     case MINUSASSIGN:
2073     case STARASSIGN:
2074     case SLASHASSIGN:
2075     case ANDASSIGN:
2076     case ORASSIGN:
2077     case XORASSIGN:
2078     case REMASSIGN:
2079     case LSHIFTASSIGN:
2080     case RSIGNEDSHIFTASSIGN:
2081     case RUNSIGNEDSHIFTASSIGN:
2082     case ARROW:
2083     case DOUBLECOLON:
2084       if (jj_2_18(2)) {
2085         op = AssignmentOperator();
2086         value = Expression();
2087                                                      ret = new AssignExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, value, op);
2088       } else {
2089         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2090         case ARROW:
2091           jj_consume_token(ARROW);
2092           lambdaBody = LambdaBody();
2093      if (ret instanceof CastExpr)
2094      {
2095        inner = generateLambda(((CastExpr)ret).getExpr(), lambdaBody);
2096        ((CastExpr)ret).setExpr(inner);
2097      }
2098      else if (ret instanceof ConditionalExpr){
2099          ConditionalExpr ce = (ConditionalExpr) ret;
2100          if(ce.getElseExpr() != null){
2101             ce.setElseExpr(generateLambda(ce.getElseExpr(), lambdaBody));
2102          }
2103      }
2104      else
2105      {
2106        ret = generateLambda(ret, lambdaBody);
2107      }
2108           break;
2109         case DOUBLECOLON:
2110           jj_consume_token(DOUBLECOLON);
2111           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2112           case LT:
2113             typeArgs = TypeParameters();
2114                                         typeArgs.remove(0);
2115             break;
2116           default:
2117             jj_la1[78] = jj_gen;
2118             ;
2119           }
2120           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2121           case IDENTIFIER:
2122             jj_consume_token(IDENTIFIER);
2123             break;
2124           case NEW:
2125             jj_consume_token(NEW);
2126             break;
2127           default:
2128             jj_la1[79] = jj_gen;
2129             jj_consume_token(-1);
2130             throw new ParseException();
2131           }
2132    ret = new MethodReferenceExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, token.image);
2133           break;
2134         default:
2135           jj_la1[80] = jj_gen;
2136           jj_consume_token(-1);
2137           throw new ParseException();
2138         }
2139       }
2140       break;
2141     default:
2142       jj_la1[81] = jj_gen;
2143       ;
2144     }
2145     {if (true) return ret;}
2146     throw new Error("Missing return statement in function");
2147   }
2148 
AssignmentOperator()2149   final public AssignExpr.Operator AssignmentOperator() {
2150         AssignExpr.Operator ret;
2151     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2152     case ASSIGN:
2153       jj_consume_token(ASSIGN);
2154                ret = AssignExpr.Operator.assign;
2155       break;
2156     case STARASSIGN:
2157       jj_consume_token(STARASSIGN);
2158                ret = AssignExpr.Operator.star;
2159       break;
2160     case SLASHASSIGN:
2161       jj_consume_token(SLASHASSIGN);
2162                ret = AssignExpr.Operator.slash;
2163       break;
2164     case REMASSIGN:
2165       jj_consume_token(REMASSIGN);
2166                ret = AssignExpr.Operator.rem;
2167       break;
2168     case PLUSASSIGN:
2169       jj_consume_token(PLUSASSIGN);
2170                ret = AssignExpr.Operator.plus;
2171       break;
2172     case MINUSASSIGN:
2173       jj_consume_token(MINUSASSIGN);
2174                ret = AssignExpr.Operator.minus;
2175       break;
2176     case LSHIFTASSIGN:
2177       jj_consume_token(LSHIFTASSIGN);
2178                ret = AssignExpr.Operator.lShift;
2179       break;
2180     case RSIGNEDSHIFTASSIGN:
2181       jj_consume_token(RSIGNEDSHIFTASSIGN);
2182                ret = AssignExpr.Operator.rSignedShift;
2183       break;
2184     case RUNSIGNEDSHIFTASSIGN:
2185       jj_consume_token(RUNSIGNEDSHIFTASSIGN);
2186                ret = AssignExpr.Operator.rUnsignedShift;
2187       break;
2188     case ANDASSIGN:
2189       jj_consume_token(ANDASSIGN);
2190                ret = AssignExpr.Operator.and;
2191       break;
2192     case XORASSIGN:
2193       jj_consume_token(XORASSIGN);
2194                ret = AssignExpr.Operator.xor;
2195       break;
2196     case ORASSIGN:
2197       jj_consume_token(ORASSIGN);
2198                ret = AssignExpr.Operator.or;
2199       break;
2200     default:
2201       jj_la1[82] = jj_gen;
2202       jj_consume_token(-1);
2203       throw new ParseException();
2204     }
2205     {if (true) return ret;}
2206     throw new Error("Missing return statement in function");
2207   }
2208 
ConditionalExpression()2209   final public Expression ConditionalExpression() {
2210         Expression ret;
2211         Expression left;
2212         Expression right;
2213     ret = ConditionalOrExpression();
2214     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2215     case HOOK:
2216       jj_consume_token(HOOK);
2217       left = Expression();
2218       jj_consume_token(COLON);
2219       right = ConditionalExpression();
2220                                                                   ret = new ConditionalExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, left, right);
2221       break;
2222     default:
2223       jj_la1[83] = jj_gen;
2224       ;
2225     }
2226     {if (true) return ret;}
2227     throw new Error("Missing return statement in function");
2228   }
2229 
ConditionalOrExpression()2230   final public Expression ConditionalOrExpression() {
2231         Expression ret;
2232         Expression right;
2233     ret = ConditionalAndExpression();
2234     label_42:
2235     while (true) {
2236       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2237       case SC_OR:
2238         ;
2239         break;
2240       default:
2241         jj_la1[84] = jj_gen;
2242         break label_42;
2243       }
2244       jj_consume_token(SC_OR);
2245       right = ConditionalAndExpression();
2246                                                                                ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.or);
2247     }
2248     {if (true) return ret;}
2249     throw new Error("Missing return statement in function");
2250   }
2251 
ConditionalAndExpression()2252   final public Expression ConditionalAndExpression() {
2253         Expression ret;
2254         Expression right;
2255     ret = InclusiveOrExpression();
2256     label_43:
2257     while (true) {
2258       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2259       case SC_AND:
2260         ;
2261         break;
2262       default:
2263         jj_la1[85] = jj_gen;
2264         break label_43;
2265       }
2266       jj_consume_token(SC_AND);
2267       right = InclusiveOrExpression();
2268                                                                          ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.and);
2269     }
2270     {if (true) return ret;}
2271     throw new Error("Missing return statement in function");
2272   }
2273 
InclusiveOrExpression()2274   final public Expression InclusiveOrExpression() {
2275         Expression ret;
2276         Expression right;
2277     ret = ExclusiveOrExpression();
2278     label_44:
2279     while (true) {
2280       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2281       case BIT_OR:
2282         ;
2283         break;
2284       default:
2285         jj_la1[86] = jj_gen;
2286         break label_44;
2287       }
2288       jj_consume_token(BIT_OR);
2289       right = ExclusiveOrExpression();
2290                                                                         ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.binOr);
2291     }
2292     {if (true) return ret;}
2293     throw new Error("Missing return statement in function");
2294   }
2295 
ExclusiveOrExpression()2296   final public Expression ExclusiveOrExpression() {
2297         Expression ret;
2298         Expression right;
2299     ret = AndExpression();
2300     label_45:
2301     while (true) {
2302       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2303       case XOR:
2304         ;
2305         break;
2306       default:
2307         jj_la1[87] = jj_gen;
2308         break label_45;
2309       }
2310       jj_consume_token(XOR);
2311       right = AndExpression();
2312                                                         ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.xor);
2313     }
2314     {if (true) return ret;}
2315     throw new Error("Missing return statement in function");
2316   }
2317 
AndExpression()2318   final public Expression AndExpression() {
2319         Expression ret;
2320         Expression right;
2321     ret = EqualityExpression();
2322     label_46:
2323     while (true) {
2324       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2325       case BIT_AND:
2326         ;
2327         break;
2328       default:
2329         jj_la1[88] = jj_gen;
2330         break label_46;
2331       }
2332       jj_consume_token(BIT_AND);
2333       right = EqualityExpression();
2334                                                                   ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, BinaryExpr.Operator.binAnd);
2335     }
2336     {if (true) return ret;}
2337     throw new Error("Missing return statement in function");
2338   }
2339 
EqualityExpression()2340   final public Expression EqualityExpression() {
2341         Expression ret;
2342         Expression right;
2343         BinaryExpr.Operator op;
2344     ret = InstanceOfExpression();
2345     label_47:
2346     while (true) {
2347       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2348       case EQ:
2349       case NE:
2350         ;
2351         break;
2352       default:
2353         jj_la1[89] = jj_gen;
2354         break label_47;
2355       }
2356       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2357       case EQ:
2358         jj_consume_token(EQ);
2359              op = BinaryExpr.Operator.equals;
2360         break;
2361       case NE:
2362         jj_consume_token(NE);
2363              op = BinaryExpr.Operator.notEquals;
2364         break;
2365       default:
2366         jj_la1[90] = jj_gen;
2367         jj_consume_token(-1);
2368         throw new ParseException();
2369       }
2370       right = InstanceOfExpression();
2371                                        ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
2372     }
2373     {if (true) return ret;}
2374     throw new Error("Missing return statement in function");
2375   }
2376 
InstanceOfExpression()2377   final public Expression InstanceOfExpression() {
2378         Expression ret;
2379         Type type;
2380     ret = RelationalExpression();
2381     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2382     case INSTANCEOF:
2383       jj_consume_token(INSTANCEOF);
2384       type = Type();
2385                                                               ret = new InstanceOfExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, type);
2386       break;
2387     default:
2388       jj_la1[91] = jj_gen;
2389       ;
2390     }
2391     {if (true) return ret;}
2392     throw new Error("Missing return statement in function");
2393   }
2394 
RelationalExpression()2395   final public Expression RelationalExpression() {
2396         Expression ret;
2397         Expression right;
2398         BinaryExpr.Operator op;
2399     ret = ShiftExpression();
2400     label_48:
2401     while (true) {
2402       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2403       case LT:
2404       case LE:
2405       case GE:
2406       case GT:
2407         ;
2408         break;
2409       default:
2410         jj_la1[92] = jj_gen;
2411         break label_48;
2412       }
2413       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2414       case LT:
2415         jj_consume_token(LT);
2416                  op = BinaryExpr.Operator.less;
2417         break;
2418       case GT:
2419         jj_consume_token(GT);
2420                  op = BinaryExpr.Operator.greater;
2421         break;
2422       case LE:
2423         jj_consume_token(LE);
2424                  op = BinaryExpr.Operator.lessEquals;
2425         break;
2426       case GE:
2427         jj_consume_token(GE);
2428                  op = BinaryExpr.Operator.greaterEquals;
2429         break;
2430       default:
2431         jj_la1[93] = jj_gen;
2432         jj_consume_token(-1);
2433         throw new ParseException();
2434       }
2435       right = ShiftExpression();
2436                                       ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
2437     }
2438     {if (true) return ret;}
2439     throw new Error("Missing return statement in function");
2440   }
2441 
ShiftExpression()2442   final public Expression ShiftExpression() {
2443         Expression ret;
2444         Expression right;
2445         BinaryExpr.Operator op;
2446     ret = AdditiveExpression();
2447     label_49:
2448     while (true) {
2449       if (jj_2_19(1)) {
2450         ;
2451       } else {
2452         break label_49;
2453       }
2454       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2455       case LSHIFT:
2456         jj_consume_token(LSHIFT);
2457                              op = BinaryExpr.Operator.lShift;
2458         break;
2459       default:
2460         jj_la1[94] = jj_gen;
2461         if (jj_2_20(1)) {
2462           RSIGNEDSHIFT();
2463                              op = BinaryExpr.Operator.rSignedShift;
2464         } else if (jj_2_21(1)) {
2465           RUNSIGNEDSHIFT();
2466                              op = BinaryExpr.Operator.rUnsignedShift;
2467         } else {
2468           jj_consume_token(-1);
2469           throw new ParseException();
2470         }
2471       }
2472       right = AdditiveExpression();
2473                                          ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
2474     }
2475     {if (true) return ret;}
2476     throw new Error("Missing return statement in function");
2477   }
2478 
AdditiveExpression()2479   final public Expression AdditiveExpression() {
2480         Expression ret;
2481         Expression right;
2482         BinaryExpr.Operator op;
2483     ret = MultiplicativeExpression();
2484     label_50:
2485     while (true) {
2486       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2487       case PLUS:
2488       case MINUS:
2489         ;
2490         break;
2491       default:
2492         jj_la1[95] = jj_gen;
2493         break label_50;
2494       }
2495       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2496       case PLUS:
2497         jj_consume_token(PLUS);
2498                 op = BinaryExpr.Operator.plus;
2499         break;
2500       case MINUS:
2501         jj_consume_token(MINUS);
2502                 op = BinaryExpr.Operator.minus;
2503         break;
2504       default:
2505         jj_la1[96] = jj_gen;
2506         jj_consume_token(-1);
2507         throw new ParseException();
2508       }
2509       right = MultiplicativeExpression();
2510                                                ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
2511     }
2512     {if (true) return ret;}
2513     throw new Error("Missing return statement in function");
2514   }
2515 
MultiplicativeExpression()2516   final public Expression MultiplicativeExpression() {
2517         Expression ret;
2518         Expression right;
2519         BinaryExpr.Operator op;
2520     ret = UnaryExpression();
2521     label_51:
2522     while (true) {
2523       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2524       case STAR:
2525       case SLASH:
2526       case REM:
2527         ;
2528         break;
2529       default:
2530         jj_la1[97] = jj_gen;
2531         break label_51;
2532       }
2533       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2534       case STAR:
2535         jj_consume_token(STAR);
2536                 op = BinaryExpr.Operator.times;
2537         break;
2538       case SLASH:
2539         jj_consume_token(SLASH);
2540                 op = BinaryExpr.Operator.divide;
2541         break;
2542       case REM:
2543         jj_consume_token(REM);
2544                 op = BinaryExpr.Operator.remainder;
2545         break;
2546       default:
2547         jj_la1[98] = jj_gen;
2548         jj_consume_token(-1);
2549         throw new ParseException();
2550       }
2551       right = UnaryExpression();
2552                                       ret = new BinaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, right, op);
2553     }
2554     {if (true) return ret;}
2555     throw new Error("Missing return statement in function");
2556   }
2557 
UnaryExpression()2558   final public Expression UnaryExpression() {
2559         Expression ret;
2560         UnaryExpr.Operator op;
2561         int line = 0;
2562         int column = 0;
2563     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2564     case INCR:
2565       ret = PreIncrementExpression();
2566       break;
2567     case DECR:
2568       ret = PreDecrementExpression();
2569       break;
2570     case PLUS:
2571     case MINUS:
2572       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2573       case PLUS:
2574         jj_consume_token(PLUS);
2575                   op = UnaryExpr.Operator.positive; line=token.beginLine; column=token.beginColumn;
2576         break;
2577       case MINUS:
2578         jj_consume_token(MINUS);
2579                   op = UnaryExpr.Operator.negative; line=token.beginLine; column=token.beginColumn;
2580         break;
2581       default:
2582         jj_la1[99] = jj_gen;
2583         jj_consume_token(-1);
2584         throw new ParseException();
2585       }
2586       ret = UnaryExpression();
2587                  if(op == UnaryExpr.Operator.negative) {
2588                         if (ret instanceof IntegerLiteralExpr && ((IntegerLiteralExpr)ret).isMinValue()) {
2589                                 ret = new IntegerLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
2590                         } else if (ret instanceof LongLiteralExpr && ((LongLiteralExpr)ret).isMinValue()) {
2591                                 ret = new LongLiteralMinValueExpr(line, column, token.endLine, token.endColumn);
2592                         } else {
2593                                 ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op);
2594                         }
2595                  } else {
2596                         ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op);
2597                  }
2598       break;
2599     case BOOLEAN:
2600     case BYTE:
2601     case CHAR:
2602     case DOUBLE:
2603     case FALSE:
2604     case FLOAT:
2605     case INT:
2606     case LONG:
2607     case NEW:
2608     case NULL:
2609     case SHORT:
2610     case SUPER:
2611     case THIS:
2612     case TRUE:
2613     case VOID:
2614     case LONG_LITERAL:
2615     case INTEGER_LITERAL:
2616     case FLOATING_POINT_LITERAL:
2617     case CHARACTER_LITERAL:
2618     case STRING_LITERAL:
2619     case IDENTIFIER:
2620     case LPAREN:
2621     case BANG:
2622     case TILDE:
2623       ret = UnaryExpressionNotPlusMinus();
2624       break;
2625     default:
2626       jj_la1[100] = jj_gen;
2627       jj_consume_token(-1);
2628       throw new ParseException();
2629     }
2630     {if (true) return ret;}
2631     throw new Error("Missing return statement in function");
2632   }
2633 
PreIncrementExpression()2634   final public Expression PreIncrementExpression() {
2635         Expression ret;
2636         int line;
2637         int column;
2638     jj_consume_token(INCR);
2639         line=token.beginLine; column=token.beginColumn;
2640     ret = UnaryExpression();
2641                                                                                    ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, UnaryExpr.Operator.preIncrement);
2642     {if (true) return ret;}
2643     throw new Error("Missing return statement in function");
2644   }
2645 
PreDecrementExpression()2646   final public Expression PreDecrementExpression() {
2647         Expression ret;
2648         int line;
2649         int column;
2650     jj_consume_token(DECR);
2651         line=token.beginLine; column=token.beginColumn;
2652     ret = UnaryExpression();
2653                                                                                    ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, UnaryExpr.Operator.preDecrement);
2654     {if (true) return ret;}
2655     throw new Error("Missing return statement in function");
2656   }
2657 
UnaryExpressionNotPlusMinus()2658   final public Expression UnaryExpressionNotPlusMinus() {
2659         Expression ret;
2660         UnaryExpr.Operator op;
2661         int line = 0;
2662         int column = 0;
2663     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2664     case BANG:
2665     case TILDE:
2666       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2667       case TILDE:
2668         jj_consume_token(TILDE);
2669                   op = UnaryExpr.Operator.inverse; line=token.beginLine; column=token.beginColumn;
2670         break;
2671       case BANG:
2672         jj_consume_token(BANG);
2673                   op = UnaryExpr.Operator.not;     line=token.beginLine; column=token.beginColumn;
2674         break;
2675       default:
2676         jj_la1[101] = jj_gen;
2677         jj_consume_token(-1);
2678         throw new ParseException();
2679       }
2680       ret = UnaryExpression();
2681                                       ret = new UnaryExpr(line, column, token.endLine, token.endColumn,ret, op);
2682       break;
2683     default:
2684       jj_la1[102] = jj_gen;
2685       if (jj_2_22(2147483647)) {
2686         ret = CastExpression();
2687       } else {
2688         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2689         case BOOLEAN:
2690         case BYTE:
2691         case CHAR:
2692         case DOUBLE:
2693         case FALSE:
2694         case FLOAT:
2695         case INT:
2696         case LONG:
2697         case NEW:
2698         case NULL:
2699         case SHORT:
2700         case SUPER:
2701         case THIS:
2702         case TRUE:
2703         case VOID:
2704         case LONG_LITERAL:
2705         case INTEGER_LITERAL:
2706         case FLOATING_POINT_LITERAL:
2707         case CHARACTER_LITERAL:
2708         case STRING_LITERAL:
2709         case IDENTIFIER:
2710         case LPAREN:
2711           ret = PostfixExpression();
2712           break;
2713         default:
2714           jj_la1[103] = jj_gen;
2715           jj_consume_token(-1);
2716           throw new ParseException();
2717         }
2718       }
2719     }
2720     {if (true) return ret;}
2721     throw new Error("Missing return statement in function");
2722   }
2723 
PostfixExpression()2724   final public Expression PostfixExpression() {
2725         Expression ret;
2726         UnaryExpr.Operator op;
2727     ret = PrimaryExpression();
2728     if (jj_2_23(2)) {
2729       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2730       case INCR:
2731         jj_consume_token(INCR);
2732              op = UnaryExpr.Operator.posIncrement;
2733         break;
2734       case DECR:
2735         jj_consume_token(DECR);
2736              op = UnaryExpr.Operator.posDecrement;
2737         break;
2738       default:
2739         jj_la1[104] = jj_gen;
2740         jj_consume_token(-1);
2741         throw new ParseException();
2742       }
2743         ret = new UnaryExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, op);
2744     } else {
2745       ;
2746     }
2747     {if (true) return ret;}
2748     throw new Error("Missing return statement in function");
2749   }
2750 
CastExpression()2751   final public Expression CastExpression() {
2752         Expression ret;
2753         Type type;
2754         int line;
2755         int column;
2756         AnnotationExpr ann;
2757         List annotations = null;
2758     jj_consume_token(LPAREN);
2759        line=token.beginLine; column=token.beginColumn;
2760     label_52:
2761     while (true) {
2762       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2763       case AT:
2764         ;
2765         break;
2766       default:
2767         jj_la1[105] = jj_gen;
2768         break label_52;
2769       }
2770       ann = Annotation();
2771                            annotations = add(annotations, ann);
2772     }
2773     if (jj_2_24(2)) {
2774       type = PrimitiveType();
2775       jj_consume_token(RPAREN);
2776       ret = UnaryExpression();
2777                                                                type.setAnnotations(annotations); ret = new CastExpr(line, column, token.endLine, token.endColumn,type, ret);
2778     } else {
2779       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2780       case BOOLEAN:
2781       case BYTE:
2782       case CHAR:
2783       case DOUBLE:
2784       case FLOAT:
2785       case INT:
2786       case LONG:
2787       case SHORT:
2788       case IDENTIFIER:
2789         type = ReferenceType();
2790         jj_consume_token(RPAREN);
2791         ret = UnaryExpressionNotPlusMinus();
2792                                                                            type.setAnnotations(annotations); ret = new CastExpr(line, column, token.endLine, token.endColumn,type, ret);
2793         break;
2794       default:
2795         jj_la1[106] = jj_gen;
2796         jj_consume_token(-1);
2797         throw new ParseException();
2798       }
2799     }
2800     {if (true) return ret;}
2801     throw new Error("Missing return statement in function");
2802   }
2803 
PrimaryExpression()2804   final public Expression PrimaryExpression() {
2805         Expression ret;
2806         Expression inner;
2807     ret = PrimaryPrefix();
2808     label_53:
2809     while (true) {
2810       if (jj_2_25(2)) {
2811         ;
2812       } else {
2813         break label_53;
2814       }
2815       ret = PrimarySuffix(ret);
2816     }
2817     {if (true) return ret;}
2818     throw new Error("Missing return statement in function");
2819   }
2820 
PrimaryExpressionWithoutSuperSuffix()2821   final public Expression PrimaryExpressionWithoutSuperSuffix() {
2822         Expression ret;
2823         Expression inner;
2824     ret = PrimaryPrefix();
2825     label_54:
2826     while (true) {
2827       if (jj_2_26(2147483647)) {
2828         ;
2829       } else {
2830         break label_54;
2831       }
2832       ret = PrimarySuffixWithoutSuper(ret);
2833     }
2834     {if (true) return ret;}
2835     throw new Error("Missing return statement in function");
2836   }
2837 
PrimaryPrefix()2838   final public Expression PrimaryPrefix() {
2839         Expression ret = null;
2840         NameExpr name;
2841         List typeArgs = null;
2842         List args = null;
2843         boolean hasArgs = false;
2844         boolean isLambda = false;
2845         Type type;
2846         int line;
2847         int column;
2848         Parameter p = null;
2849         VariableDeclaratorId id = null;
2850     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2851     case FALSE:
2852     case NULL:
2853     case TRUE:
2854     case LONG_LITERAL:
2855     case INTEGER_LITERAL:
2856     case FLOATING_POINT_LITERAL:
2857     case CHARACTER_LITERAL:
2858     case STRING_LITERAL:
2859       ret = Literal();
2860       break;
2861     case THIS:
2862       jj_consume_token(THIS);
2863                    ret = new ThisExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null);
2864       break;
2865     case SUPER:
2866       jj_consume_token(SUPER);
2867                     ret = new SuperExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, null);
2868       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2869       case DOT:
2870         jj_consume_token(DOT);
2871         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2872         case LT:
2873         case 132:
2874           typeArgs = TypeArguments();
2875                                         typeArgs.remove(0);
2876           break;
2877         default:
2878           jj_la1[107] = jj_gen;
2879           ;
2880         }
2881         name = SimpleName();
2882         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2883         case LPAREN:
2884           args = Arguments();
2885                                 hasArgs=true;
2886           break;
2887         default:
2888           jj_la1[108] = jj_gen;
2889           ;
2890         }
2891                         if (hasArgs) {
2892                                 MethodCallExpr m = new MethodCallExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, null, args);
2893                                 m.setNameExpr(name);
2894                                 ret = m;
2895                         } else {
2896                                 FieldAccessExpr f = new FieldAccessExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, null, null);
2897                                 f.setFieldExpr(name);
2898                                 ret = f;
2899                         }
2900         break;
2901       case DOUBLECOLON:
2902         jj_consume_token(DOUBLECOLON);
2903         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2904         case LT:
2905           typeArgs = TypeParameters();
2906                                                     typeArgs.remove(0);
2907           break;
2908         default:
2909           jj_la1[109] = jj_gen;
2910           ;
2911         }
2912         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2913         case IDENTIFIER:
2914           jj_consume_token(IDENTIFIER);
2915           break;
2916         case NEW:
2917           jj_consume_token(NEW);
2918           break;
2919         default:
2920           jj_la1[110] = jj_gen;
2921           jj_consume_token(-1);
2922           throw new ParseException();
2923         }
2924                   ret = new MethodReferenceExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, token.image);
2925         break;
2926       case LPAREN:
2927         args = Arguments();
2928                              new MethodCallExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, null, args);
2929         break;
2930       default:
2931         jj_la1[111] = jj_gen;
2932         jj_consume_token(-1);
2933         throw new ParseException();
2934       }
2935       break;
2936     case LPAREN:
2937       jj_consume_token(LPAREN);
2938                line=token.beginLine; column=token.beginColumn;
2939       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2940       case ABSTRACT:
2941       case BOOLEAN:
2942       case BYTE:
2943       case CHAR:
2944       case DOUBLE:
2945       case FALSE:
2946       case FINAL:
2947       case FLOAT:
2948       case INT:
2949       case LONG:
2950       case NATIVE:
2951       case NEW:
2952       case NULL:
2953       case PRIVATE:
2954       case PROTECTED:
2955       case PUBLIC:
2956       case SHORT:
2957       case STATIC:
2958       case STRICTFP:
2959       case SUPER:
2960       case SYNCHRONIZED:
2961       case THIS:
2962       case TRANSIENT:
2963       case TRUE:
2964       case VOID:
2965       case VOLATILE:
2966       case LONG_LITERAL:
2967       case INTEGER_LITERAL:
2968       case FLOATING_POINT_LITERAL:
2969       case CHARACTER_LITERAL:
2970       case STRING_LITERAL:
2971       case IDENTIFIER:
2972       case LPAREN:
2973       case AT:
2974       case BANG:
2975       case TILDE:
2976       case INCR:
2977       case DECR:
2978       case PLUS:
2979       case MINUS:
2980         if (jj_2_27(2147483647)) {
2981           p = FormalParameter();
2982                                                                        isLambda = true;
2983           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2984           case COMMA:
2985             args = FormalLambdaParameters();
2986             break;
2987           default:
2988             jj_la1[112] = jj_gen;
2989             ;
2990           }
2991         } else {
2992           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2993           case BOOLEAN:
2994           case BYTE:
2995           case CHAR:
2996           case DOUBLE:
2997           case FALSE:
2998           case FLOAT:
2999           case INT:
3000           case LONG:
3001           case NEW:
3002           case NULL:
3003           case SHORT:
3004           case SUPER:
3005           case THIS:
3006           case TRUE:
3007           case VOID:
3008           case LONG_LITERAL:
3009           case INTEGER_LITERAL:
3010           case FLOATING_POINT_LITERAL:
3011           case CHARACTER_LITERAL:
3012           case STRING_LITERAL:
3013           case IDENTIFIER:
3014           case LPAREN:
3015           case BANG:
3016           case TILDE:
3017           case INCR:
3018           case DECR:
3019           case PLUS:
3020           case MINUS:
3021             ret = Expression();
3022             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3023             case COMMA:
3024               args = InferredLambdaParameters();
3025                                                                           isLambda = true;
3026               break;
3027             default:
3028               jj_la1[113] = jj_gen;
3029               ;
3030             }
3031             break;
3032           default:
3033             jj_la1[114] = jj_gen;
3034             jj_consume_token(-1);
3035             throw new ParseException();
3036           }
3037         }
3038         break;
3039       default:
3040         jj_la1[115] = jj_gen;
3041         ;
3042       }
3043       jj_consume_token(RPAREN);
3044                            if(!isLambda) { ret = new EnclosedExpr(line, column, token.endLine, token.endColumn,ret);}
3045                            else{
3046                                   if(ret != null){
3047                                           if(ret instanceof NameExpr)
3048                                           {
3049                                             id = new VariableDeclaratorId(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), ((NameExpr)ret).getName(), 0);
3050                                             p = new Parameter(ret.getBeginLine(), ret.getBeginColumn(), ret.getEndLine(), ret.getEndColumn(), 0, null, new UnknownType(), false, id);
3051                                           }
3052 
3053                                         }
3054                                         args = add(0, args, p);
3055                                         ret = new LambdaExpr(p.getBeginLine(), p.getBeginColumn(), token.endLine, token.endColumn, args, null, true);
3056                                 }
3057       break;
3058     case NEW:
3059       ret = AllocationExpression(null);
3060       break;
3061     default:
3062       jj_la1[119] = jj_gen;
3063       if (jj_2_28(2147483647)) {
3064         type = ResultType();
3065         jj_consume_token(DOT);
3066         jj_consume_token(CLASS);
3067                                              ret = new ClassExpr(type.getBeginLine(), type.getBeginColumn(), token.endLine, token.endColumn, type);
3068       } else if (jj_2_29(2147483647)) {
3069         type = ResultType();
3070         jj_consume_token(DOUBLECOLON);
3071         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3072         case LT:
3073           typeArgs = TypeParameters();
3074                                                                   typeArgs.remove(0);
3075           break;
3076         default:
3077           jj_la1[116] = jj_gen;
3078           ;
3079         }
3080         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3081         case IDENTIFIER:
3082           jj_consume_token(IDENTIFIER);
3083           break;
3084         case NEW:
3085           jj_consume_token(NEW);
3086           break;
3087         default:
3088           jj_la1[117] = jj_gen;
3089           jj_consume_token(-1);
3090           throw new ParseException();
3091         }
3092                   ret = new TypeExpr(type.getBeginLine(), type.getBeginColumn(), type.getEndLine(), type.getEndColumn(), type);
3093                   ret = new MethodReferenceExpr(ret.getBeginLine(), ret.getBeginColumn(), token.endLine, token.endColumn, ret, typeArgs, token.image);
3094       } else {
3095         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3096         case IDENTIFIER:
3097           name = SimpleName();
3098                                       line=token.beginLine; column=token.beginColumn;
3099           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3100           case LPAREN:
3101             args = Arguments();
3102                                       hasArgs=true;
3103             break;
3104           default:
3105             jj_la1[118] = jj_gen;
3106             ;
3107           }
3108                         if (hasArgs) {
3109                                 MethodCallExpr m = new MethodCallExpr(line, column, token.endLine, token.endColumn, null, null, null, args);
3110                                 m.setNameExpr(name);
3111                                 ret = m;
3112                         } else {
3113                                 ret = name;
3114                         }
3115           break;
3116         default:
3117           jj_la1[120] = jj_gen;
3118           jj_consume_token(-1);
3119           throw new ParseException();
3120         }
3121       }
3122     }
3123     {if (true) return ret;}
3124     throw new Error("Missing return statement in function");
3125   }
3126 
PrimarySuffix(Expression scope)3127   final public Expression PrimarySuffix(Expression scope) {
3128         Expression ret;
3129     if (jj_2_30(2)) {
3130       ret = PrimarySuffixWithoutSuper(scope);
3131     } else {
3132       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3133       case DOT:
3134         jj_consume_token(DOT);
3135         jj_consume_token(SUPER);
3136                       ret = new SuperExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope);
3137         break;
3138       default:
3139         jj_la1[121] = jj_gen;
3140         jj_consume_token(-1);
3141         throw new ParseException();
3142       }
3143     }
3144     {if (true) return ret;}
3145     throw new Error("Missing return statement in function");
3146   }
3147 
PrimarySuffixWithoutSuper(Expression scope)3148   final public Expression PrimarySuffixWithoutSuper(Expression scope) {
3149         Expression ret;
3150         List typeArgs = null;
3151         List args = null;
3152         boolean hasArgs = false;
3153         NameExpr name;
3154     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3155     case DOT:
3156       jj_consume_token(DOT);
3157       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3158       case THIS:
3159         jj_consume_token(THIS);
3160                          ret = new ThisExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope);
3161         break;
3162       case NEW:
3163         ret = AllocationExpression(scope);
3164         break;
3165       default:
3166         jj_la1[124] = jj_gen;
3167         if (jj_2_31(2147483647)) {
3168           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3169           case LT:
3170           case 132:
3171             typeArgs = TypeArguments();
3172                                               typeArgs.remove(0);
3173             break;
3174           default:
3175             jj_la1[122] = jj_gen;
3176             ;
3177           }
3178           name = SimpleName();
3179           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3180           case LPAREN:
3181             args = Arguments();
3182                                       hasArgs=true;
3183             break;
3184           default:
3185             jj_la1[123] = jj_gen;
3186             ;
3187           }
3188                         if (hasArgs) {
3189                                 MethodCallExpr m = new MethodCallExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, typeArgs, null, args);
3190                                 m.setNameExpr(name);
3191                                 ret = m;
3192                         } else {
3193                                 FieldAccessExpr f =  new FieldAccessExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, typeArgs, null);
3194                                 f.setFieldExpr(name);
3195                                 ret = f;
3196                         }
3197         } else {
3198           jj_consume_token(-1);
3199           throw new ParseException();
3200         }
3201       }
3202       break;
3203     case LBRACKET:
3204       jj_consume_token(LBRACKET);
3205       ret = Expression();
3206       jj_consume_token(RBRACKET);
3207                                       ret = new ArrayAccessExpr(scope.getBeginLine(), scope.getBeginColumn(), token.endLine, token.endColumn, scope, ret);
3208       break;
3209     default:
3210       jj_la1[125] = jj_gen;
3211       jj_consume_token(-1);
3212       throw new ParseException();
3213     }
3214     {if (true) return ret;}
3215     throw new Error("Missing return statement in function");
3216   }
3217 
Literal()3218   final public Expression Literal() {
3219         Expression ret;
3220     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3221     case INTEGER_LITERAL:
3222       jj_consume_token(INTEGER_LITERAL);
3223                         ret = new IntegerLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
3224       break;
3225     case LONG_LITERAL:
3226       jj_consume_token(LONG_LITERAL);
3227                         ret = new LongLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
3228       break;
3229     case FLOATING_POINT_LITERAL:
3230       jj_consume_token(FLOATING_POINT_LITERAL);
3231                         ret = new DoubleLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image);
3232       break;
3233     case CHARACTER_LITERAL:
3234       jj_consume_token(CHARACTER_LITERAL);
3235                 ret = new CharLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image.substring(1, token.image.length()-1));
3236       break;
3237     case STRING_LITERAL:
3238       jj_consume_token(STRING_LITERAL);
3239                 ret = new StringLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, token.image.substring(1, token.image.length()-1));
3240       break;
3241     case FALSE:
3242     case TRUE:
3243       ret = BooleanLiteral();
3244       break;
3245     case NULL:
3246       ret = NullLiteral();
3247       break;
3248     default:
3249       jj_la1[126] = jj_gen;
3250       jj_consume_token(-1);
3251       throw new ParseException();
3252     }
3253     {if (true) return ret;}
3254     throw new Error("Missing return statement in function");
3255   }
3256 
BooleanLiteral()3257   final public Expression BooleanLiteral() {
3258         Expression ret;
3259     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3260     case TRUE:
3261       jj_consume_token(TRUE);
3262                    ret = new BooleanLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, true);
3263       break;
3264     case FALSE:
3265       jj_consume_token(FALSE);
3266                     ret = new BooleanLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn, false);
3267       break;
3268     default:
3269       jj_la1[127] = jj_gen;
3270       jj_consume_token(-1);
3271       throw new ParseException();
3272     }
3273     {if (true) return ret;}
3274     throw new Error("Missing return statement in function");
3275   }
3276 
NullLiteral()3277   final public Expression NullLiteral() {
3278     jj_consume_token(NULL);
3279     {if (true) return new NullLiteralExpr(token.beginLine, token.beginColumn, token.endLine, token.endColumn);}
3280     throw new Error("Missing return statement in function");
3281   }
3282 
Arguments()3283   final public List Arguments() {
3284         List ret = null;
3285     jj_consume_token(LPAREN);
3286     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3287     case BOOLEAN:
3288     case BYTE:
3289     case CHAR:
3290     case DOUBLE:
3291     case FALSE:
3292     case FLOAT:
3293     case INT:
3294     case LONG:
3295     case NEW:
3296     case NULL:
3297     case SHORT:
3298     case SUPER:
3299     case THIS:
3300     case TRUE:
3301     case VOID:
3302     case LONG_LITERAL:
3303     case INTEGER_LITERAL:
3304     case FLOATING_POINT_LITERAL:
3305     case CHARACTER_LITERAL:
3306     case STRING_LITERAL:
3307     case IDENTIFIER:
3308     case LPAREN:
3309     case BANG:
3310     case TILDE:
3311     case INCR:
3312     case DECR:
3313     case PLUS:
3314     case MINUS:
3315       ret = ArgumentList();
3316       break;
3317     default:
3318       jj_la1[128] = jj_gen;
3319       ;
3320     }
3321     jj_consume_token(RPAREN);
3322     {if (true) return ret;}
3323     throw new Error("Missing return statement in function");
3324   }
3325 
ArgumentList()3326   final public List ArgumentList() {
3327         List ret = new LinkedList();
3328         Expression expr;
3329     expr = Expression();
3330                         ret.add(expr);
3331     label_55:
3332     while (true) {
3333       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3334       case COMMA:
3335         ;
3336         break;
3337       default:
3338         jj_la1[129] = jj_gen;
3339         break label_55;
3340       }
3341       jj_consume_token(COMMA);
3342       expr = Expression();
3343                                                                      ret.add(expr);
3344     }
3345     {if (true) return ret;}
3346     throw new Error("Missing return statement in function");
3347   }
3348 
AllocationExpression(Expression scope)3349   final public Expression AllocationExpression(Expression scope) {
3350         Expression ret;
3351         ArrayCreationExpr arrayExpr;
3352         Type type;
3353         Object[] arr = null;
3354         List typeArgs = null;
3355         List anonymousBody = null;
3356         List args;
3357         int line;
3358         int column;
3359         List annotations = null;
3360         AnnotationExpr ann;
3361     jj_consume_token(NEW);
3362           if(scope==null) {line=token.beginLine; column=token.beginColumn;} else {line=scope.getBeginLine(); column=scope.getBeginColumn();}
3363     label_56:
3364     while (true) {
3365       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3366       case AT:
3367         ;
3368         break;
3369       default:
3370         jj_la1[130] = jj_gen;
3371         break label_56;
3372       }
3373       ann = Annotation();
3374                           annotations = add(annotations, ann);
3375     }
3376     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3377     case BOOLEAN:
3378     case BYTE:
3379     case CHAR:
3380     case DOUBLE:
3381     case FLOAT:
3382     case INT:
3383     case LONG:
3384     case SHORT:
3385       type = PrimitiveType();
3386                                   type.setAnnotations(annotations);
3387       arr = ArrayDimsAndInits();
3388             arrayExpr = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, null, 0);
3389             arrayExpr.setArraysAnnotations((List)arr[2]);
3390                 if (arr[0] instanceof Integer) {
3391                     arrayExpr.setArrayCount(((Integer)arr[0]).intValue());
3392                     arrayExpr.setInitializer((ArrayInitializerExpr)arr[1]);
3393                 } else {
3394                     arrayExpr.setArrayCount(((Integer)arr[1]).intValue());
3395                     arrayExpr.setDimensions((List)arr[0]);
3396                 }
3397                 ret = arrayExpr;
3398       break;
3399     case IDENTIFIER:
3400     case LT:
3401     case 132:
3402       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3403       case LT:
3404       case 132:
3405         typeArgs = TypeArguments();
3406         label_57:
3407         while (true) {
3408           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3409           case AT:
3410             ;
3411             break;
3412           default:
3413             jj_la1[131] = jj_gen;
3414             break label_57;
3415           }
3416           ann = Annotation();
3417                                                                annotations = add(annotations, ann);
3418         }
3419                                                                                                         typeArgs.remove(0);
3420         break;
3421       default:
3422         jj_la1[132] = jj_gen;
3423         ;
3424       }
3425       type = ClassOrInterfaceType();
3426       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3427       case LBRACKET:
3428       case AT:
3429         arr = ArrayDimsAndInits();
3430                                          type.setAnnotations(annotations); arrayExpr = new ArrayCreationExpr(line, column, token.endLine, token.endColumn, type, null, 0);
3431                     arrayExpr.setArraysAnnotations((List)arr[2]);
3432                         if (arr[0] instanceof Integer) {
3433                                 arrayExpr.setArrayCount(((Integer)arr[0]).intValue());
3434                             arrayExpr.setInitializer((ArrayInitializerExpr)arr[1]);
3435                         } else {
3436                                 arrayExpr.setArrayCount(((Integer)arr[1]).intValue());
3437                             arrayExpr.setDimensions((List)arr[0]);
3438                         }
3439                         ret = arrayExpr;
3440         break;
3441       case LPAREN:
3442         args = Arguments();
3443         if (jj_2_32(2)) {
3444           anonymousBody = ClassOrInterfaceBody(false);
3445         } else {
3446           ;
3447         }
3448                 type.setAnnotations(annotations); ret = new ObjectCreationExpr(line, column, token.endLine, token.endColumn, scope, (ClassOrInterfaceType) type, typeArgs, args, anonymousBody);
3449         break;
3450       default:
3451         jj_la1[133] = jj_gen;
3452         jj_consume_token(-1);
3453         throw new ParseException();
3454       }
3455       break;
3456     default:
3457       jj_la1[134] = jj_gen;
3458       jj_consume_token(-1);
3459       throw new ParseException();
3460     }
3461     {if (true) return ret;}
3462     throw new Error("Missing return statement in function");
3463   }
3464 
3465 /*
3466  * The third LOOKAHEAD specification below is to parse to PrimarySuffix
3467  * if there is an expression between the "[...]".
3468  */
ArrayDimsAndInits()3469   final public Object[] ArrayDimsAndInits() {
3470         Object[] ret = new Object[3];
3471         Expression expr;
3472         List inits = null;
3473         int i = 0;
3474         List accum = null;
3475         List annotations = null;
3476         AnnotationExpr ann;
3477     label_58:
3478     while (true) {
3479       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3480       case AT:
3481         ;
3482         break;
3483       default:
3484         jj_la1[135] = jj_gen;
3485         break label_58;
3486       }
3487       ann = Annotation();
3488                           annotations = add(annotations, ann);
3489     }
3490     if (jj_2_35(2)) {
3491       label_59:
3492       while (true) {
3493         jj_consume_token(LBRACKET);
3494         expr = Expression();
3495                                                    accum = add(accum, annotations); annotations=null; inits = add(inits, expr);
3496         jj_consume_token(RBRACKET);
3497         if (jj_2_33(2)) {
3498           ;
3499         } else {
3500           break label_59;
3501         }
3502       }
3503       label_60:
3504       while (true) {
3505         if (jj_2_34(2)) {
3506           ;
3507         } else {
3508           break label_60;
3509         }
3510         label_61:
3511         while (true) {
3512           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3513           case AT:
3514             ;
3515             break;
3516           default:
3517             jj_la1[136] = jj_gen;
3518             break label_61;
3519           }
3520           ann = Annotation();
3521                                                                                                                                                                                 annotations = add(annotations, ann);
3522         }
3523         jj_consume_token(LBRACKET);
3524         jj_consume_token(RBRACKET);
3525                                                                                                                                                                                                                                     i++;
3526       }
3527                                                                                                                                                                                                                                                  accum = add(accum, annotations); annotations=null; ret[0] = inits; ret[1] = new Integer(i);
3528     } else {
3529       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3530       case LBRACKET:
3531         label_62:
3532         while (true) {
3533           jj_consume_token(LBRACKET);
3534           jj_consume_token(RBRACKET);
3535                       i++;
3536           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3537           case LBRACKET:
3538             ;
3539             break;
3540           default:
3541             jj_la1[137] = jj_gen;
3542             break label_62;
3543           }
3544         }
3545         expr = ArrayInitializer();
3546                                                             accum = add(accum, annotations);annotations=null;  ret[0] = new Integer(i); ret[1] = expr;
3547         break;
3548       default:
3549         jj_la1[138] = jj_gen;
3550         jj_consume_token(-1);
3551         throw new ParseException();
3552       }
3553     }
3554     ret[2]=accum; {if (true) return ret;}
3555     throw new Error("Missing return statement in function");
3556   }
3557 
3558 /*
3559  * Statement syntax follows.
3560  */
Statement()3561   final public Statement Statement() {
3562         Statement ret;
3563     if (jj_2_36(2)) {
3564       ret = LabeledStatement();
3565     } else {
3566       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3567       case ASSERT:
3568         ret = AssertStatement();
3569         break;
3570       case LBRACE:
3571         ret = Block();
3572         break;
3573       case SEMICOLON:
3574         ret = EmptyStatement();
3575         break;
3576       case BOOLEAN:
3577       case BYTE:
3578       case CHAR:
3579       case DOUBLE:
3580       case FALSE:
3581       case FLOAT:
3582       case INT:
3583       case LONG:
3584       case NEW:
3585       case NULL:
3586       case SHORT:
3587       case SUPER:
3588       case THIS:
3589       case TRUE:
3590       case VOID:
3591       case LONG_LITERAL:
3592       case INTEGER_LITERAL:
3593       case FLOATING_POINT_LITERAL:
3594       case CHARACTER_LITERAL:
3595       case STRING_LITERAL:
3596       case IDENTIFIER:
3597       case LPAREN:
3598       case INCR:
3599       case DECR:
3600         ret = StatementExpression();
3601         break;
3602       case SWITCH:
3603         ret = SwitchStatement();
3604         break;
3605       case IF:
3606         ret = IfStatement();
3607         break;
3608       case WHILE:
3609         ret = WhileStatement();
3610         break;
3611       case DO:
3612         ret = DoStatement();
3613         break;
3614       case FOR:
3615         ret = ForStatement();
3616         break;
3617       case BREAK:
3618         ret = BreakStatement();
3619         break;
3620       case CONTINUE:
3621         ret = ContinueStatement();
3622         break;
3623       case RETURN:
3624         ret = ReturnStatement();
3625         break;
3626       case THROW:
3627         ret = ThrowStatement();
3628         break;
3629       case SYNCHRONIZED:
3630         ret = SynchronizedStatement();
3631         break;
3632       case TRY:
3633         ret = TryStatement();
3634         break;
3635       default:
3636         jj_la1[139] = jj_gen;
3637         jj_consume_token(-1);
3638         throw new ParseException();
3639       }
3640     }
3641     {if (true) return ret;}
3642     throw new Error("Missing return statement in function");
3643   }
3644 
AssertStatement()3645   final public AssertStmt AssertStatement() {
3646         Expression check;
3647         Expression msg = null;
3648         int line;
3649         int column;
3650     jj_consume_token(ASSERT);
3651             line=token.beginLine; column=token.beginColumn;
3652     check = Expression();
3653     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3654     case COLON:
3655       jj_consume_token(COLON);
3656       msg = Expression();
3657       break;
3658     default:
3659       jj_la1[140] = jj_gen;
3660       ;
3661     }
3662     jj_consume_token(SEMICOLON);
3663     {if (true) return new AssertStmt(line, column, token.endLine, token.endColumn,check, msg);}
3664     throw new Error("Missing return statement in function");
3665   }
3666 
LabeledStatement()3667   final public LabeledStmt LabeledStatement() {
3668         String label;
3669         Statement stmt;
3670         int line;
3671         int column;
3672     jj_consume_token(IDENTIFIER);
3673                 line=token.beginLine; column=token.beginColumn;
3674                                                                    label = token.image;
3675     jj_consume_token(COLON);
3676     stmt = Statement();
3677     {if (true) return new LabeledStmt(line, column, token.endLine, token.endColumn,label, stmt);}
3678     throw new Error("Missing return statement in function");
3679   }
3680 
Block()3681   final public BlockStmt Block() {
3682         List stmts;
3683         int beginLine;
3684         int beginColumn;
3685     jj_consume_token(LBRACE);
3686        beginLine=token.beginLine; beginColumn=token.beginColumn;
3687     stmts = Statements();
3688     jj_consume_token(RBRACE);
3689     {if (true) return new BlockStmt(beginLine, beginColumn, token.endLine, token.endColumn, stmts);}
3690     throw new Error("Missing return statement in function");
3691   }
3692 
3693 /*
3694  * Classes inside block stametents can only be abstract or final. The semantic must check it.
3695  */
BlockStatement()3696   final public Statement BlockStatement() {
3697         Statement ret;
3698         Expression expr;
3699         ClassOrInterfaceDeclaration typeDecl;
3700         Modifier modifier;
3701     if (jj_2_37(2147483647)) {
3702 
3703       modifier = Modifiers();
3704       typeDecl = ClassOrInterfaceDeclaration(modifier);
3705                                                              ret = new TypeDeclarationStmt(typeDecl.getBeginLine(), typeDecl.getBeginColumn(), token.endLine, token.endColumn, typeDecl);
3706     } else if (jj_2_38(2147483647)) {
3707       expr = VariableDeclarationExpression();
3708       jj_consume_token(SEMICOLON);
3709             ret = new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);
3710     } else {
3711       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3712       case ASSERT:
3713       case BOOLEAN:
3714       case BREAK:
3715       case BYTE:
3716       case CHAR:
3717       case CONTINUE:
3718       case DO:
3719       case DOUBLE:
3720       case FALSE:
3721       case FLOAT:
3722       case FOR:
3723       case IF:
3724       case INT:
3725       case LONG:
3726       case NEW:
3727       case NULL:
3728       case RETURN:
3729       case SHORT:
3730       case SUPER:
3731       case SWITCH:
3732       case SYNCHRONIZED:
3733       case THIS:
3734       case THROW:
3735       case TRUE:
3736       case TRY:
3737       case VOID:
3738       case WHILE:
3739       case LONG_LITERAL:
3740       case INTEGER_LITERAL:
3741       case FLOATING_POINT_LITERAL:
3742       case CHARACTER_LITERAL:
3743       case STRING_LITERAL:
3744       case IDENTIFIER:
3745       case LPAREN:
3746       case LBRACE:
3747       case SEMICOLON:
3748       case INCR:
3749       case DECR:
3750         ret = Statement();
3751         break;
3752       default:
3753         jj_la1[141] = jj_gen;
3754         jj_consume_token(-1);
3755         throw new ParseException();
3756       }
3757     }
3758     {if (true) return ret;}
3759     throw new Error("Missing return statement in function");
3760   }
3761 
VariableDeclarationExpression()3762   final public VariableDeclarationExpr VariableDeclarationExpression() {
3763         Modifier modifier;
3764         Type type;
3765         List vars = new LinkedList();
3766         VariableDeclarator var;
3767     modifier = Modifiers();
3768     type = Type();
3769     var = VariableDeclarator();
3770                                                                     vars.add(var);
3771     label_63:
3772     while (true) {
3773       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3774       case COMMA:
3775         ;
3776         break;
3777       default:
3778         jj_la1[142] = jj_gen;
3779         break label_63;
3780       }
3781       jj_consume_token(COMMA);
3782       var = VariableDeclarator();
3783                                                                                                                         vars.add(var);
3784     }
3785     int line = modifier.beginLine;
3786     int column = modifier.beginColumn;
3787     if(line==-1) {line=type.getBeginLine(); column=type.getBeginColumn(); }
3788     {if (true) return new VariableDeclarationExpr(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, vars);}
3789     throw new Error("Missing return statement in function");
3790   }
3791 
EmptyStatement()3792   final public EmptyStmt EmptyStatement() {
3793     jj_consume_token(SEMICOLON);
3794     {if (true) return new EmptyStmt(token.beginLine, token.beginColumn, token.endLine, token.endColumn);}
3795     throw new Error("Missing return statement in function");
3796   }
3797 
LambdaBody()3798   final public Statement LambdaBody() {
3799   Expression expr;
3800   Statement n = null;
3801     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3802     case BOOLEAN:
3803     case BYTE:
3804     case CHAR:
3805     case DOUBLE:
3806     case FALSE:
3807     case FLOAT:
3808     case INT:
3809     case LONG:
3810     case NEW:
3811     case NULL:
3812     case SHORT:
3813     case SUPER:
3814     case THIS:
3815     case TRUE:
3816     case VOID:
3817     case LONG_LITERAL:
3818     case INTEGER_LITERAL:
3819     case FLOATING_POINT_LITERAL:
3820     case CHARACTER_LITERAL:
3821     case STRING_LITERAL:
3822     case IDENTIFIER:
3823     case LPAREN:
3824     case BANG:
3825     case TILDE:
3826     case INCR:
3827     case DECR:
3828     case PLUS:
3829     case MINUS:
3830       expr = Expression();
3831           n = new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);
3832       break;
3833     case LBRACE:
3834       n = Block();
3835       break;
3836     default:
3837       jj_la1[143] = jj_gen;
3838       jj_consume_token(-1);
3839       throw new ParseException();
3840     }
3841         {if (true) return n;}
3842     throw new Error("Missing return statement in function");
3843   }
3844 
StatementExpression()3845   final public ExpressionStmt StatementExpression() {
3846         Expression expr;
3847         AssignExpr.Operator op;
3848         Expression value;
3849         Type type;
3850         List typeArgs = null;
3851         Statement lambdaBody = null;
3852         VariableDeclaratorId id = null;
3853         List params = null;
3854         Expression inner = null;
3855     if (jj_2_39(2)) {
3856       expr = PreIncrementExpression();
3857     } else {
3858       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3859       case DECR:
3860         expr = PreDecrementExpression();
3861         break;
3862       case BOOLEAN:
3863       case BYTE:
3864       case CHAR:
3865       case DOUBLE:
3866       case FALSE:
3867       case FLOAT:
3868       case INT:
3869       case LONG:
3870       case NEW:
3871       case NULL:
3872       case SHORT:
3873       case SUPER:
3874       case THIS:
3875       case TRUE:
3876       case VOID:
3877       case LONG_LITERAL:
3878       case INTEGER_LITERAL:
3879       case FLOATING_POINT_LITERAL:
3880       case CHARACTER_LITERAL:
3881       case STRING_LITERAL:
3882       case IDENTIFIER:
3883       case LPAREN:
3884         expr = PrimaryExpression();
3885         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3886         case ASSIGN:
3887         case INCR:
3888         case DECR:
3889         case PLUSASSIGN:
3890         case MINUSASSIGN:
3891         case STARASSIGN:
3892         case SLASHASSIGN:
3893         case ANDASSIGN:
3894         case ORASSIGN:
3895         case XORASSIGN:
3896         case REMASSIGN:
3897         case LSHIFTASSIGN:
3898         case RSIGNEDSHIFTASSIGN:
3899         case RUNSIGNEDSHIFTASSIGN:
3900         case ARROW:
3901         case DOUBLECOLON:
3902           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3903           case INCR:
3904             jj_consume_token(INCR);
3905                    expr = new UnaryExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, UnaryExpr.Operator.posIncrement);
3906             break;
3907           case DECR:
3908             jj_consume_token(DECR);
3909                    expr = new UnaryExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, UnaryExpr.Operator.posDecrement);
3910             break;
3911           case ASSIGN:
3912           case PLUSASSIGN:
3913           case MINUSASSIGN:
3914           case STARASSIGN:
3915           case SLASHASSIGN:
3916           case ANDASSIGN:
3917           case ORASSIGN:
3918           case XORASSIGN:
3919           case REMASSIGN:
3920           case LSHIFTASSIGN:
3921           case RSIGNEDSHIFTASSIGN:
3922           case RUNSIGNEDSHIFTASSIGN:
3923             op = AssignmentOperator();
3924             value = Expression();
3925                                                              expr = new AssignExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, value, op);
3926             break;
3927           case DOUBLECOLON:
3928             jj_consume_token(DOUBLECOLON);
3929             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3930             case LT:
3931               typeArgs = TypeParameters();
3932                                                  typeArgs.remove(0);
3933               break;
3934             default:
3935               jj_la1[144] = jj_gen;
3936               ;
3937             }
3938             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3939             case IDENTIFIER:
3940               jj_consume_token(IDENTIFIER);
3941               break;
3942             case NEW:
3943               jj_consume_token(NEW);
3944               break;
3945             default:
3946               jj_la1[145] = jj_gen;
3947               jj_consume_token(-1);
3948               throw new ParseException();
3949             }
3950                                                                                                  expr = new MethodReferenceExpr(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr, typeArgs, token.image);
3951             break;
3952           case ARROW:
3953             jj_consume_token(ARROW);
3954             lambdaBody = LambdaBody();
3955              if (expr instanceof CastExpr)
3956              {
3957            inner = generateLambda(((CastExpr)expr).getExpr(), lambdaBody);
3958            ((CastExpr)expr).setExpr(inner);
3959              }
3960              else
3961              {
3962                expr = generateLambda(expr, lambdaBody);
3963              }
3964             break;
3965           default:
3966             jj_la1[146] = jj_gen;
3967             jj_consume_token(-1);
3968             throw new ParseException();
3969           }
3970           break;
3971         default:
3972           jj_la1[147] = jj_gen;
3973           ;
3974         }
3975         break;
3976       default:
3977         jj_la1[148] = jj_gen;
3978         jj_consume_token(-1);
3979         throw new ParseException();
3980       }
3981     }
3982     jj_consume_token(SEMICOLON);
3983     {if (true) return new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);}
3984     throw new Error("Missing return statement in function");
3985   }
3986 
SwitchStatement()3987   final public SwitchStmt SwitchStatement() {
3988         Expression selector;
3989         SwitchEntryStmt entry;
3990         List entries = null;
3991         int line;
3992         int column;
3993     jj_consume_token(SWITCH);
3994             line=token.beginLine; column=token.beginColumn;
3995     jj_consume_token(LPAREN);
3996     selector = Expression();
3997     jj_consume_token(RPAREN);
3998     jj_consume_token(LBRACE);
3999     label_64:
4000     while (true) {
4001       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4002       case CASE:
4003       case _DEFAULT:
4004         ;
4005         break;
4006       default:
4007         jj_la1[149] = jj_gen;
4008         break label_64;
4009       }
4010       entry = SwitchEntry();
4011                               entries = add(entries, entry);
4012     }
4013     jj_consume_token(RBRACE);
4014     {if (true) return new SwitchStmt(line, column, token.endLine, token.endColumn,selector, entries);}
4015     throw new Error("Missing return statement in function");
4016   }
4017 
SwitchEntry()4018   final public SwitchEntryStmt SwitchEntry() {
4019         Expression label = null;
4020         List stmts;
4021         int line;
4022         int column;
4023     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4024     case CASE:
4025       jj_consume_token(CASE);
4026                   line=token.beginLine; column=token.beginColumn;
4027       label = Expression();
4028       break;
4029     case _DEFAULT:
4030       jj_consume_token(_DEFAULT);
4031                      line=token.beginLine; column=token.beginColumn;
4032       break;
4033     default:
4034       jj_la1[150] = jj_gen;
4035       jj_consume_token(-1);
4036       throw new ParseException();
4037     }
4038     jj_consume_token(COLON);
4039     stmts = Statements();
4040     {if (true) return new SwitchEntryStmt(line, column, token.endLine, token.endColumn,label, stmts);}
4041     throw new Error("Missing return statement in function");
4042   }
4043 
IfStatement()4044   final public IfStmt IfStatement() {
4045         Expression condition;
4046         Statement thenStmt;
4047         Statement elseStmt = null;
4048         int line;
4049         int column;
4050     Comment thenCmmt = null;
4051     Comment elseCmmt = null;
4052     jj_consume_token(IF);
4053         line=token.beginLine; column=token.beginColumn;
4054     jj_consume_token(LPAREN);
4055     condition = Expression();
4056     jj_consume_token(RPAREN);
4057 
4058     thenStmt = Statement();
4059     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4060     case ELSE:
4061       jj_consume_token(ELSE);
4062 
4063       elseStmt = Statement();
4064       break;
4065     default:
4066       jj_la1[151] = jj_gen;
4067       ;
4068     }
4069       IfStmt tmp = new IfStmt(line, column, token.endLine, token.endColumn,condition, thenStmt, elseStmt);
4070 
4071       thenStmt.setComment(thenCmmt);
4072       if (elseStmt != null)
4073           elseStmt.setComment(elseCmmt);
4074       {if (true) return tmp;}
4075     throw new Error("Missing return statement in function");
4076   }
4077 
WhileStatement()4078   final public WhileStmt WhileStatement() {
4079         Expression condition;
4080         Statement body;
4081         int line;
4082         int column;
4083     jj_consume_token(WHILE);
4084            line=token.beginLine; column=token.beginColumn;
4085     jj_consume_token(LPAREN);
4086     condition = Expression();
4087     jj_consume_token(RPAREN);
4088     body = Statement();
4089     {if (true) return new WhileStmt(line, column, token.endLine, token.endColumn,condition, body);}
4090     throw new Error("Missing return statement in function");
4091   }
4092 
DoStatement()4093   final public DoStmt DoStatement() {
4094         Expression condition;
4095         Statement body;
4096         int line;
4097         int column;
4098     jj_consume_token(DO);
4099         line=token.beginLine; column=token.beginColumn;
4100     body = Statement();
4101     jj_consume_token(WHILE);
4102     jj_consume_token(LPAREN);
4103     condition = Expression();
4104     jj_consume_token(RPAREN);
4105     jj_consume_token(SEMICOLON);
4106     {if (true) return new DoStmt(line, column, token.endLine, token.endColumn,body, condition);}
4107     throw new Error("Missing return statement in function");
4108   }
4109 
ForStatement()4110   final public Statement ForStatement() {
4111         String id = null;
4112         VariableDeclarationExpr varExpr = null;
4113         Expression expr = null;
4114         List init = null;
4115         List update = null;
4116         Statement body;
4117         int line;
4118         int column;
4119     jj_consume_token(FOR);
4120          line=token.beginLine; column=token.beginColumn;
4121     jj_consume_token(LPAREN);
4122     if (jj_2_40(2147483647)) {
4123       varExpr = VariableDeclarationExpression();
4124       jj_consume_token(COLON);
4125       expr = Expression();
4126     } else {
4127       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4128       case ABSTRACT:
4129       case BOOLEAN:
4130       case BYTE:
4131       case CHAR:
4132       case DOUBLE:
4133       case FALSE:
4134       case FINAL:
4135       case FLOAT:
4136       case INT:
4137       case LONG:
4138       case NATIVE:
4139       case NEW:
4140       case NULL:
4141       case PRIVATE:
4142       case PROTECTED:
4143       case PUBLIC:
4144       case SHORT:
4145       case STATIC:
4146       case STRICTFP:
4147       case SUPER:
4148       case SYNCHRONIZED:
4149       case THIS:
4150       case TRANSIENT:
4151       case TRUE:
4152       case VOID:
4153       case VOLATILE:
4154       case LONG_LITERAL:
4155       case INTEGER_LITERAL:
4156       case FLOATING_POINT_LITERAL:
4157       case CHARACTER_LITERAL:
4158       case STRING_LITERAL:
4159       case IDENTIFIER:
4160       case LPAREN:
4161       case SEMICOLON:
4162       case AT:
4163       case BANG:
4164       case TILDE:
4165       case INCR:
4166       case DECR:
4167       case PLUS:
4168       case MINUS:
4169         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4170         case ABSTRACT:
4171         case BOOLEAN:
4172         case BYTE:
4173         case CHAR:
4174         case DOUBLE:
4175         case FALSE:
4176         case FINAL:
4177         case FLOAT:
4178         case INT:
4179         case LONG:
4180         case NATIVE:
4181         case NEW:
4182         case NULL:
4183         case PRIVATE:
4184         case PROTECTED:
4185         case PUBLIC:
4186         case SHORT:
4187         case STATIC:
4188         case STRICTFP:
4189         case SUPER:
4190         case SYNCHRONIZED:
4191         case THIS:
4192         case TRANSIENT:
4193         case TRUE:
4194         case VOID:
4195         case VOLATILE:
4196         case LONG_LITERAL:
4197         case INTEGER_LITERAL:
4198         case FLOATING_POINT_LITERAL:
4199         case CHARACTER_LITERAL:
4200         case STRING_LITERAL:
4201         case IDENTIFIER:
4202         case LPAREN:
4203         case AT:
4204         case BANG:
4205         case TILDE:
4206         case INCR:
4207         case DECR:
4208         case PLUS:
4209         case MINUS:
4210           init = ForInit();
4211           break;
4212         default:
4213           jj_la1[152] = jj_gen;
4214           ;
4215         }
4216         jj_consume_token(SEMICOLON);
4217         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4218         case BOOLEAN:
4219         case BYTE:
4220         case CHAR:
4221         case DOUBLE:
4222         case FALSE:
4223         case FLOAT:
4224         case INT:
4225         case LONG:
4226         case NEW:
4227         case NULL:
4228         case SHORT:
4229         case SUPER:
4230         case THIS:
4231         case TRUE:
4232         case VOID:
4233         case LONG_LITERAL:
4234         case INTEGER_LITERAL:
4235         case FLOATING_POINT_LITERAL:
4236         case CHARACTER_LITERAL:
4237         case STRING_LITERAL:
4238         case IDENTIFIER:
4239         case LPAREN:
4240         case BANG:
4241         case TILDE:
4242         case INCR:
4243         case DECR:
4244         case PLUS:
4245         case MINUS:
4246           expr = Expression();
4247           break;
4248         default:
4249           jj_la1[153] = jj_gen;
4250           ;
4251         }
4252         jj_consume_token(SEMICOLON);
4253         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4254         case BOOLEAN:
4255         case BYTE:
4256         case CHAR:
4257         case DOUBLE:
4258         case FALSE:
4259         case FLOAT:
4260         case INT:
4261         case LONG:
4262         case NEW:
4263         case NULL:
4264         case SHORT:
4265         case SUPER:
4266         case THIS:
4267         case TRUE:
4268         case VOID:
4269         case LONG_LITERAL:
4270         case INTEGER_LITERAL:
4271         case FLOATING_POINT_LITERAL:
4272         case CHARACTER_LITERAL:
4273         case STRING_LITERAL:
4274         case IDENTIFIER:
4275         case LPAREN:
4276         case BANG:
4277         case TILDE:
4278         case INCR:
4279         case DECR:
4280         case PLUS:
4281         case MINUS:
4282           update = ForUpdate();
4283           break;
4284         default:
4285           jj_la1[154] = jj_gen;
4286           ;
4287         }
4288         break;
4289       default:
4290         jj_la1[155] = jj_gen;
4291         jj_consume_token(-1);
4292         throw new ParseException();
4293       }
4294     }
4295     jj_consume_token(RPAREN);
4296     body = Statement();
4297         if (varExpr != null) {
4298                 {if (true) return new ForeachStmt(line, column, token.endLine, token.endColumn,varExpr, expr, body);}
4299         }
4300         {if (true) return new ForStmt(line, column, token.endLine, token.endColumn,init, expr, update, body);}
4301     throw new Error("Missing return statement in function");
4302   }
4303 
ForInit()4304   final public List ForInit() {
4305         List ret;
4306         Expression expr;
4307     if (jj_2_41(2147483647)) {
4308       expr = VariableDeclarationExpression();
4309                                                    ret = new LinkedList(); ret.add(expr);
4310     } else {
4311       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4312       case BOOLEAN:
4313       case BYTE:
4314       case CHAR:
4315       case DOUBLE:
4316       case FALSE:
4317       case FLOAT:
4318       case INT:
4319       case LONG:
4320       case NEW:
4321       case NULL:
4322       case SHORT:
4323       case SUPER:
4324       case THIS:
4325       case TRUE:
4326       case VOID:
4327       case LONG_LITERAL:
4328       case INTEGER_LITERAL:
4329       case FLOATING_POINT_LITERAL:
4330       case CHARACTER_LITERAL:
4331       case STRING_LITERAL:
4332       case IDENTIFIER:
4333       case LPAREN:
4334       case BANG:
4335       case TILDE:
4336       case INCR:
4337       case DECR:
4338       case PLUS:
4339       case MINUS:
4340         ret = ExpressionList();
4341         break;
4342       default:
4343         jj_la1[156] = jj_gen;
4344         jj_consume_token(-1);
4345         throw new ParseException();
4346       }
4347     }
4348     {if (true) return ret;}
4349     throw new Error("Missing return statement in function");
4350   }
4351 
ExpressionList()4352   final public List ExpressionList() {
4353         List ret = new LinkedList();
4354         Expression expr;
4355     expr = Expression();
4356                         ret.add(expr);
4357     label_65:
4358     while (true) {
4359       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4360       case COMMA:
4361         ;
4362         break;
4363       default:
4364         jj_la1[157] = jj_gen;
4365         break label_65;
4366       }
4367       jj_consume_token(COMMA);
4368       expr = Expression();
4369                                                                       ret.add(expr);
4370     }
4371     {if (true) return ret;}
4372     throw new Error("Missing return statement in function");
4373   }
4374 
ForUpdate()4375   final public List ForUpdate() {
4376         List ret;
4377     ret = ExpressionList();
4378     {if (true) return ret;}
4379     throw new Error("Missing return statement in function");
4380   }
4381 
BreakStatement()4382   final public BreakStmt BreakStatement() {
4383         String id = null;
4384         int line;
4385         int column;
4386     jj_consume_token(BREAK);
4387            line=token.beginLine; column=token.beginColumn;
4388     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4389     case IDENTIFIER:
4390       jj_consume_token(IDENTIFIER);
4391                                                                              id = token.image;
4392       break;
4393     default:
4394       jj_la1[158] = jj_gen;
4395       ;
4396     }
4397     jj_consume_token(SEMICOLON);
4398     {if (true) return new BreakStmt(line, column, token.endLine, token.endColumn,id);}
4399     throw new Error("Missing return statement in function");
4400   }
4401 
ContinueStatement()4402   final public ContinueStmt ContinueStatement() {
4403         String id = null;
4404         int line;
4405         int column;
4406     jj_consume_token(CONTINUE);
4407               line=token.beginLine; column=token.beginColumn;
4408     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4409     case IDENTIFIER:
4410       jj_consume_token(IDENTIFIER);
4411                                                                                 id = token.image;
4412       break;
4413     default:
4414       jj_la1[159] = jj_gen;
4415       ;
4416     }
4417     jj_consume_token(SEMICOLON);
4418     {if (true) return new ContinueStmt(line, column, token.endLine, token.endColumn,id);}
4419     throw new Error("Missing return statement in function");
4420   }
4421 
ReturnStatement()4422   final public ReturnStmt ReturnStatement() {
4423         Expression expr = null;
4424         int line;
4425         int column;
4426     jj_consume_token(RETURN);
4427             line=token.beginLine; column=token.beginColumn;
4428     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4429     case BOOLEAN:
4430     case BYTE:
4431     case CHAR:
4432     case DOUBLE:
4433     case FALSE:
4434     case FLOAT:
4435     case INT:
4436     case LONG:
4437     case NEW:
4438     case NULL:
4439     case SHORT:
4440     case SUPER:
4441     case THIS:
4442     case TRUE:
4443     case VOID:
4444     case LONG_LITERAL:
4445     case INTEGER_LITERAL:
4446     case FLOATING_POINT_LITERAL:
4447     case CHARACTER_LITERAL:
4448     case STRING_LITERAL:
4449     case IDENTIFIER:
4450     case LPAREN:
4451     case BANG:
4452     case TILDE:
4453     case INCR:
4454     case DECR:
4455     case PLUS:
4456     case MINUS:
4457       expr = Expression();
4458       break;
4459     default:
4460       jj_la1[160] = jj_gen;
4461       ;
4462     }
4463     jj_consume_token(SEMICOLON);
4464     {if (true) return new ReturnStmt(line, column, token.endLine, token.endColumn,expr);}
4465     throw new Error("Missing return statement in function");
4466   }
4467 
ThrowStatement()4468   final public ThrowStmt ThrowStatement() {
4469         Expression expr;
4470         int line;
4471         int column;
4472     jj_consume_token(THROW);
4473            line=token.beginLine; column=token.beginColumn;
4474     expr = Expression();
4475     jj_consume_token(SEMICOLON);
4476     {if (true) return new ThrowStmt(line, column, token.endLine, token.endColumn,expr);}
4477     throw new Error("Missing return statement in function");
4478   }
4479 
SynchronizedStatement()4480   final public SynchronizedStmt SynchronizedStatement() {
4481         Expression expr;
4482         BlockStmt block;
4483         int line;
4484         int column;
4485     jj_consume_token(SYNCHRONIZED);
4486                   line=token.beginLine; column=token.beginColumn;
4487     jj_consume_token(LPAREN);
4488     expr = Expression();
4489     jj_consume_token(RPAREN);
4490     block = Block();
4491     {if (true) return new SynchronizedStmt(line, column, token.endLine, token.endColumn,expr, block);}
4492     throw new Error("Missing return statement in function");
4493   }
4494 
TryStatement()4495   final public TryStmt TryStatement() {
4496         List resources = new LinkedList();
4497         BlockStmt tryBlock;
4498         BlockStmt finallyBlock = null;
4499         List catchs = null;
4500         Parameter except;
4501         BlockStmt catchBlock;
4502         Modifier exceptModifier;
4503         Type exceptType;
4504         List exceptTypes = new LinkedList();
4505         VariableDeclaratorId exceptId;
4506         int line;
4507         int column;
4508         int cLine;
4509         int cColumn;
4510     jj_consume_token(TRY);
4511          line=token.beginLine; column=token.beginColumn;
4512     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4513     case LPAREN:
4514       resources = ResourceSpecification();
4515       break;
4516     default:
4517       jj_la1[161] = jj_gen;
4518       ;
4519     }
4520     tryBlock = Block();
4521     label_66:
4522     while (true) {
4523       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4524       case CATCH:
4525         ;
4526         break;
4527       default:
4528         jj_la1[162] = jj_gen;
4529         break label_66;
4530       }
4531       jj_consume_token(CATCH);
4532                                  cLine=token.beginLine; cColumn=token.beginColumn;
4533       jj_consume_token(LPAREN);
4534       exceptModifier = Modifiers();
4535       exceptType = Type();
4536                                                                            exceptTypes.add(exceptType);
4537       label_67:
4538       while (true) {
4539         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4540         case BIT_OR:
4541           ;
4542           break;
4543         default:
4544           jj_la1[163] = jj_gen;
4545           break label_67;
4546         }
4547         jj_consume_token(BIT_OR);
4548         exceptType = Type();
4549                                                     exceptTypes.add(exceptType);
4550       }
4551       exceptId = VariableDeclaratorId();
4552       jj_consume_token(RPAREN);
4553       catchBlock = Block();
4554                           catchs = add(catchs, new CatchClause(cLine, cColumn, token.endLine, token.endColumn, exceptModifier.modifiers, exceptModifier.annotations, exceptTypes, exceptId, catchBlock)); exceptTypes = new LinkedList();
4555     }
4556     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4557     case FINALLY:
4558       jj_consume_token(FINALLY);
4559       finallyBlock = Block();
4560       break;
4561     default:
4562       jj_la1[164] = jj_gen;
4563       ;
4564     }
4565     {if (true) return new TryStmt(line, column, token.endLine, token.endColumn, resources, tryBlock, catchs, finallyBlock);}
4566     throw new Error("Missing return statement in function");
4567   }
4568 
ResourceSpecification()4569   final public List ResourceSpecification() {
4570 List vars;
4571     jj_consume_token(LPAREN);
4572     vars = Resources();
4573     if (jj_2_42(2)) {
4574       jj_consume_token(SEMICOLON);
4575     } else {
4576       ;
4577     }
4578     jj_consume_token(RPAREN);
4579     {if (true) return vars;}
4580     throw new Error("Missing return statement in function");
4581   }
4582 
Resources()4583   final public List Resources() {
4584         List vars = new LinkedList();
4585         VariableDeclarationExpr var;
4586     /*this is a bit more lenient than we need to be, eg allowing access modifiers like private*/
4587       var = VariableDeclarationExpression();
4588                                          vars.add(var);
4589     label_68:
4590     while (true) {
4591       if (jj_2_43(2)) {
4592         ;
4593       } else {
4594         break label_68;
4595       }
4596       jj_consume_token(SEMICOLON);
4597       var = VariableDeclarationExpression();
4598                                                                                                                   vars.add(var);
4599     }
4600     {if (true) return vars;}
4601     throw new Error("Missing return statement in function");
4602   }
4603 
4604 /* We use productions to match >>>, >> and > so that we can keep the
4605  * type declaration syntax with generics clean
4606  */
RUNSIGNEDSHIFT()4607   final public void RUNSIGNEDSHIFT() {
4608     if (getToken(1).kind == GT &&
4609                     ((GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT) {
4610 
4611     } else {
4612       jj_consume_token(-1);
4613       throw new ParseException();
4614     }
4615     jj_consume_token(GT);
4616     jj_consume_token(GT);
4617     jj_consume_token(GT);
4618   }
4619 
RSIGNEDSHIFT()4620   final public void RSIGNEDSHIFT() {
4621     if (getToken(1).kind == GT &&
4622                     ((GTToken)getToken(1)).realKind == RSIGNEDSHIFT) {
4623 
4624     } else {
4625       jj_consume_token(-1);
4626       throw new ParseException();
4627     }
4628     jj_consume_token(GT);
4629     jj_consume_token(GT);
4630   }
4631 
4632 /* Annotation syntax follows. */
Annotation()4633   final public AnnotationExpr Annotation() {
4634         AnnotationExpr ret;
4635     if (jj_2_44(2147483647)) {
4636       ret = NormalAnnotation();
4637     } else if (jj_2_45(2147483647)) {
4638       ret = SingleMemberAnnotation();
4639     } else {
4640       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4641       case AT:
4642         ret = MarkerAnnotation();
4643         break;
4644       default:
4645         jj_la1[165] = jj_gen;
4646         jj_consume_token(-1);
4647         throw new ParseException();
4648       }
4649     }
4650     {if (true) return ret;}
4651     throw new Error("Missing return statement in function");
4652   }
4653 
NormalAnnotation()4654   final public NormalAnnotationExpr NormalAnnotation() {
4655         NameExpr name;
4656         List pairs = null;
4657         int line;
4658         int column;
4659     jj_consume_token(AT);
4660         line=token.beginLine; column=token.beginColumn;
4661     name = Name();
4662     jj_consume_token(LPAREN);
4663     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4664     case IDENTIFIER:
4665       pairs = MemberValuePairs();
4666       break;
4667     default:
4668       jj_la1[166] = jj_gen;
4669       ;
4670     }
4671     jj_consume_token(RPAREN);
4672      {if (true) return new NormalAnnotationExpr(line, column, token.endLine, token.endColumn,name, pairs);}
4673     throw new Error("Missing return statement in function");
4674   }
4675 
MarkerAnnotation()4676   final public MarkerAnnotationExpr MarkerAnnotation() {
4677         NameExpr name;
4678         int line;
4679         int column;
4680     jj_consume_token(AT);
4681        line=token.beginLine; column=token.beginColumn;
4682     name = Name();
4683     {if (true) return new MarkerAnnotationExpr(line, column, token.endLine, token.endColumn,name);}
4684     throw new Error("Missing return statement in function");
4685   }
4686 
SingleMemberAnnotation()4687   final public SingleMemberAnnotationExpr SingleMemberAnnotation() {
4688         NameExpr name;
4689         Expression memberVal;
4690         int line;
4691         int column;
4692     jj_consume_token(AT);
4693        line=token.beginLine; column=token.beginColumn;
4694     name = Name();
4695     jj_consume_token(LPAREN);
4696     memberVal = MemberValue();
4697     jj_consume_token(RPAREN);
4698     {if (true) return new SingleMemberAnnotationExpr(line, column, token.endLine, token.endColumn,name, memberVal);}
4699     throw new Error("Missing return statement in function");
4700   }
4701 
MemberValuePairs()4702   final public List MemberValuePairs() {
4703         List ret = new LinkedList();
4704         MemberValuePair pair;
4705     pair = MemberValuePair();
4706                               ret.add(pair);
4707     label_69:
4708     while (true) {
4709       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4710       case COMMA:
4711         ;
4712         break;
4713       default:
4714         jj_la1[167] = jj_gen;
4715         break label_69;
4716       }
4717       jj_consume_token(COMMA);
4718       pair = MemberValuePair();
4719                                                                                 ret.add(pair);
4720     }
4721      {if (true) return ret;}
4722     throw new Error("Missing return statement in function");
4723   }
4724 
MemberValuePair()4725   final public MemberValuePair MemberValuePair() {
4726         String name;
4727         Expression value;
4728         int line;
4729         int column;
4730     jj_consume_token(IDENTIFIER);
4731                    name = token.image; line=token.beginLine; column=token.beginColumn;
4732     jj_consume_token(ASSIGN);
4733     value = MemberValue();
4734       {if (true) return new MemberValuePair(line, column, token.endLine, token.endColumn,name, value);}
4735     throw new Error("Missing return statement in function");
4736   }
4737 
MemberValue()4738   final public Expression MemberValue() {
4739         Expression ret;
4740     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4741     case AT:
4742       ret = Annotation();
4743       break;
4744     case LBRACE:
4745       ret = MemberValueArrayInitializer();
4746       break;
4747     case BOOLEAN:
4748     case BYTE:
4749     case CHAR:
4750     case DOUBLE:
4751     case FALSE:
4752     case FLOAT:
4753     case INT:
4754     case LONG:
4755     case NEW:
4756     case NULL:
4757     case SHORT:
4758     case SUPER:
4759     case THIS:
4760     case TRUE:
4761     case VOID:
4762     case LONG_LITERAL:
4763     case INTEGER_LITERAL:
4764     case FLOATING_POINT_LITERAL:
4765     case CHARACTER_LITERAL:
4766     case STRING_LITERAL:
4767     case IDENTIFIER:
4768     case LPAREN:
4769     case BANG:
4770     case TILDE:
4771     case INCR:
4772     case DECR:
4773     case PLUS:
4774     case MINUS:
4775       ret = ConditionalExpression();
4776       break;
4777     default:
4778       jj_la1[168] = jj_gen;
4779       jj_consume_token(-1);
4780       throw new ParseException();
4781     }
4782     {if (true) return ret;}
4783     throw new Error("Missing return statement in function");
4784   }
4785 
MemberValueArrayInitializer()4786   final public Expression MemberValueArrayInitializer() {
4787         List ret = new LinkedList();
4788         Expression member;
4789         int line;
4790         int column;
4791     jj_consume_token(LBRACE);
4792        line=token.beginLine; column=token.beginColumn;
4793     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4794     case BOOLEAN:
4795     case BYTE:
4796     case CHAR:
4797     case DOUBLE:
4798     case FALSE:
4799     case FLOAT:
4800     case INT:
4801     case LONG:
4802     case NEW:
4803     case NULL:
4804     case SHORT:
4805     case SUPER:
4806     case THIS:
4807     case TRUE:
4808     case VOID:
4809     case LONG_LITERAL:
4810     case INTEGER_LITERAL:
4811     case FLOATING_POINT_LITERAL:
4812     case CHARACTER_LITERAL:
4813     case STRING_LITERAL:
4814     case IDENTIFIER:
4815     case LPAREN:
4816     case LBRACE:
4817     case AT:
4818     case BANG:
4819     case TILDE:
4820     case INCR:
4821     case DECR:
4822     case PLUS:
4823     case MINUS:
4824       member = MemberValue();
4825                                  ret.add(member);
4826       label_70:
4827       while (true) {
4828         if (jj_2_46(2)) {
4829           ;
4830         } else {
4831           break label_70;
4832         }
4833         jj_consume_token(COMMA);
4834         member = MemberValue();
4835                                                                                                 ret.add(member);
4836       }
4837       break;
4838     default:
4839       jj_la1[169] = jj_gen;
4840       ;
4841     }
4842     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4843     case COMMA:
4844       jj_consume_token(COMMA);
4845       break;
4846     default:
4847       jj_la1[170] = jj_gen;
4848       ;
4849     }
4850     jj_consume_token(RBRACE);
4851     {if (true) return new ArrayInitializerExpr(line, column, token.endLine, token.endColumn,ret);}
4852     throw new Error("Missing return statement in function");
4853   }
4854 
4855 /* Annotation Types. */
AnnotationTypeDeclaration(Modifier modifier)4856   final public AnnotationDeclaration AnnotationTypeDeclaration(Modifier modifier) {
4857         NameExpr name;
4858         List members;
4859         int line = modifier.beginLine;
4860         int column = modifier.beginColumn;
4861     jj_consume_token(AT);
4862         if (line == -1) {line=token.beginLine; column=token.beginColumn;}
4863     jj_consume_token(INTERFACE);
4864     name = Name();
4865     members = AnnotationTypeBody();
4866       AnnotationDeclaration tmp = new AnnotationDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, null, members);
4867       tmp.setNameExpr(name);
4868       {if (true) return tmp;}
4869     throw new Error("Missing return statement in function");
4870   }
4871 
AnnotationTypeBody()4872   final public List AnnotationTypeBody() {
4873         List ret = null;
4874         BodyDeclaration member;
4875     jj_consume_token(LBRACE);
4876     label_71:
4877     while (true) {
4878       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4879       case ABSTRACT:
4880       case BOOLEAN:
4881       case BYTE:
4882       case CHAR:
4883       case CLASS:
4884       case DOUBLE:
4885       case ENUM:
4886       case FINAL:
4887       case FLOAT:
4888       case INT:
4889       case INTERFACE:
4890       case LONG:
4891       case NATIVE:
4892       case PRIVATE:
4893       case PROTECTED:
4894       case PUBLIC:
4895       case SHORT:
4896       case STATIC:
4897       case STRICTFP:
4898       case SYNCHRONIZED:
4899       case TRANSIENT:
4900       case VOLATILE:
4901       case IDENTIFIER:
4902       case SEMICOLON:
4903       case AT:
4904         ;
4905         break;
4906       default:
4907         jj_la1[171] = jj_gen;
4908         break label_71;
4909       }
4910       member = AnnotationBodyDeclaration();
4911                                                ret = add(ret, member);
4912     }
4913     jj_consume_token(RBRACE);
4914     {if (true) return ret;}
4915     throw new Error("Missing return statement in function");
4916   }
4917 
AnnotationBodyDeclaration()4918   final public BodyDeclaration AnnotationBodyDeclaration() {
4919    Modifier modifier;
4920    BodyDeclaration ret;
4921 
4922     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4923     case SEMICOLON:
4924       jj_consume_token(SEMICOLON);
4925               ret = new EmptyTypeDeclaration(token.beginLine, token.beginColumn, token.endLine, token.endColumn);
4926       break;
4927     case ABSTRACT:
4928     case BOOLEAN:
4929     case BYTE:
4930     case CHAR:
4931     case CLASS:
4932     case DOUBLE:
4933     case ENUM:
4934     case FINAL:
4935     case FLOAT:
4936     case INT:
4937     case INTERFACE:
4938     case LONG:
4939     case NATIVE:
4940     case PRIVATE:
4941     case PROTECTED:
4942     case PUBLIC:
4943     case SHORT:
4944     case STATIC:
4945     case STRICTFP:
4946     case SYNCHRONIZED:
4947     case TRANSIENT:
4948     case VOLATILE:
4949     case IDENTIFIER:
4950     case AT:
4951       modifier = Modifiers();
4952       if (jj_2_47(2147483647)) {
4953         ret = AnnotationTypeMemberDeclaration(modifier);
4954       } else {
4955         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4956         case CLASS:
4957         case INTERFACE:
4958           ret = ClassOrInterfaceDeclaration(modifier);
4959           break;
4960         case ENUM:
4961           ret = EnumDeclaration(modifier);
4962           break;
4963         case AT:
4964           ret = AnnotationTypeDeclaration(modifier);
4965           break;
4966         case BOOLEAN:
4967         case BYTE:
4968         case CHAR:
4969         case DOUBLE:
4970         case FLOAT:
4971         case INT:
4972         case LONG:
4973         case SHORT:
4974         case IDENTIFIER:
4975           ret = FieldDeclaration(modifier);
4976           break;
4977         default:
4978           jj_la1[172] = jj_gen;
4979           jj_consume_token(-1);
4980           throw new ParseException();
4981         }
4982       }
4983       break;
4984     default:
4985       jj_la1[173] = jj_gen;
4986       jj_consume_token(-1);
4987       throw new ParseException();
4988     }
4989     {if (true) return ret;}
4990     throw new Error("Missing return statement in function");
4991   }
4992 
AnnotationTypeMemberDeclaration(Modifier modifier)4993   final public AnnotationMemberDeclaration AnnotationTypeMemberDeclaration(Modifier modifier) {
4994         Type type;
4995         String name;
4996         Expression defaultVal = null;
4997     type = Type();
4998     jj_consume_token(IDENTIFIER);
4999                                name = token.image;
5000     jj_consume_token(LPAREN);
5001     jj_consume_token(RPAREN);
5002     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5003     case _DEFAULT:
5004       defaultVal = DefaultValue();
5005       break;
5006     default:
5007       jj_la1[174] = jj_gen;
5008       ;
5009     }
5010     jj_consume_token(SEMICOLON);
5011     int line = modifier.beginLine;
5012     int column = modifier.beginColumn;
5013     { if (line == -1) {line=type.getBeginLine(); column=type.getBeginColumn();} }
5014     {if (true) return new AnnotationMemberDeclaration(line, column, token.endLine, token.endColumn, modifier.modifiers, modifier.annotations, type, name, defaultVal);}
5015     throw new Error("Missing return statement in function");
5016   }
5017 
DefaultValue()5018   final public Expression DefaultValue() {
5019         Expression ret;
5020     jj_consume_token(_DEFAULT);
5021     ret = MemberValue();
5022     {if (true) return ret;}
5023     throw new Error("Missing return statement in function");
5024   }
5025 
jj_2_1(int xla)5026   private boolean jj_2_1(int xla) {
5027     jj_la = xla; jj_lastpos = jj_scanpos = token;
5028     try { return !jj_3_1(); }
5029     catch(LookaheadSuccess ls) { return true; }
5030     finally { jj_save(0, xla); }
5031   }
5032 
jj_2_2(int xla)5033   private boolean jj_2_2(int xla) {
5034     jj_la = xla; jj_lastpos = jj_scanpos = token;
5035     try { return !jj_3_2(); }
5036     catch(LookaheadSuccess ls) { return true; }
5037     finally { jj_save(1, xla); }
5038   }
5039 
jj_2_3(int xla)5040   private boolean jj_2_3(int xla) {
5041     jj_la = xla; jj_lastpos = jj_scanpos = token;
5042     try { return !jj_3_3(); }
5043     catch(LookaheadSuccess ls) { return true; }
5044     finally { jj_save(2, xla); }
5045   }
5046 
jj_2_4(int xla)5047   private boolean jj_2_4(int xla) {
5048     jj_la = xla; jj_lastpos = jj_scanpos = token;
5049     try { return !jj_3_4(); }
5050     catch(LookaheadSuccess ls) { return true; }
5051     finally { jj_save(3, xla); }
5052   }
5053 
jj_2_5(int xla)5054   private boolean jj_2_5(int xla) {
5055     jj_la = xla; jj_lastpos = jj_scanpos = token;
5056     try { return !jj_3_5(); }
5057     catch(LookaheadSuccess ls) { return true; }
5058     finally { jj_save(4, xla); }
5059   }
5060 
jj_2_6(int xla)5061   private boolean jj_2_6(int xla) {
5062     jj_la = xla; jj_lastpos = jj_scanpos = token;
5063     try { return !jj_3_6(); }
5064     catch(LookaheadSuccess ls) { return true; }
5065     finally { jj_save(5, xla); }
5066   }
5067 
jj_2_7(int xla)5068   private boolean jj_2_7(int xla) {
5069     jj_la = xla; jj_lastpos = jj_scanpos = token;
5070     try { return !jj_3_7(); }
5071     catch(LookaheadSuccess ls) { return true; }
5072     finally { jj_save(6, xla); }
5073   }
5074 
jj_2_8(int xla)5075   private boolean jj_2_8(int xla) {
5076     jj_la = xla; jj_lastpos = jj_scanpos = token;
5077     try { return !jj_3_8(); }
5078     catch(LookaheadSuccess ls) { return true; }
5079     finally { jj_save(7, xla); }
5080   }
5081 
jj_2_9(int xla)5082   private boolean jj_2_9(int xla) {
5083     jj_la = xla; jj_lastpos = jj_scanpos = token;
5084     try { return !jj_3_9(); }
5085     catch(LookaheadSuccess ls) { return true; }
5086     finally { jj_save(8, xla); }
5087   }
5088 
jj_2_10(int xla)5089   private boolean jj_2_10(int xla) {
5090     jj_la = xla; jj_lastpos = jj_scanpos = token;
5091     try { return !jj_3_10(); }
5092     catch(LookaheadSuccess ls) { return true; }
5093     finally { jj_save(9, xla); }
5094   }
5095 
jj_2_11(int xla)5096   private boolean jj_2_11(int xla) {
5097     jj_la = xla; jj_lastpos = jj_scanpos = token;
5098     try { return !jj_3_11(); }
5099     catch(LookaheadSuccess ls) { return true; }
5100     finally { jj_save(10, xla); }
5101   }
5102 
jj_2_12(int xla)5103   private boolean jj_2_12(int xla) {
5104     jj_la = xla; jj_lastpos = jj_scanpos = token;
5105     try { return !jj_3_12(); }
5106     catch(LookaheadSuccess ls) { return true; }
5107     finally { jj_save(11, xla); }
5108   }
5109 
jj_2_13(int xla)5110   private boolean jj_2_13(int xla) {
5111     jj_la = xla; jj_lastpos = jj_scanpos = token;
5112     try { return !jj_3_13(); }
5113     catch(LookaheadSuccess ls) { return true; }
5114     finally { jj_save(12, xla); }
5115   }
5116 
jj_2_14(int xla)5117   private boolean jj_2_14(int xla) {
5118     jj_la = xla; jj_lastpos = jj_scanpos = token;
5119     try { return !jj_3_14(); }
5120     catch(LookaheadSuccess ls) { return true; }
5121     finally { jj_save(13, xla); }
5122   }
5123 
jj_2_15(int xla)5124   private boolean jj_2_15(int xla) {
5125     jj_la = xla; jj_lastpos = jj_scanpos = token;
5126     try { return !jj_3_15(); }
5127     catch(LookaheadSuccess ls) { return true; }
5128     finally { jj_save(14, xla); }
5129   }
5130 
jj_2_16(int xla)5131   private boolean jj_2_16(int xla) {
5132     jj_la = xla; jj_lastpos = jj_scanpos = token;
5133     try { return !jj_3_16(); }
5134     catch(LookaheadSuccess ls) { return true; }
5135     finally { jj_save(15, xla); }
5136   }
5137 
jj_2_17(int xla)5138   private boolean jj_2_17(int xla) {
5139     jj_la = xla; jj_lastpos = jj_scanpos = token;
5140     try { return !jj_3_17(); }
5141     catch(LookaheadSuccess ls) { return true; }
5142     finally { jj_save(16, xla); }
5143   }
5144 
jj_2_18(int xla)5145   private boolean jj_2_18(int xla) {
5146     jj_la = xla; jj_lastpos = jj_scanpos = token;
5147     try { return !jj_3_18(); }
5148     catch(LookaheadSuccess ls) { return true; }
5149     finally { jj_save(17, xla); }
5150   }
5151 
jj_2_19(int xla)5152   private boolean jj_2_19(int xla) {
5153     jj_la = xla; jj_lastpos = jj_scanpos = token;
5154     try { return !jj_3_19(); }
5155     catch(LookaheadSuccess ls) { return true; }
5156     finally { jj_save(18, xla); }
5157   }
5158 
jj_2_20(int xla)5159   private boolean jj_2_20(int xla) {
5160     jj_la = xla; jj_lastpos = jj_scanpos = token;
5161     try { return !jj_3_20(); }
5162     catch(LookaheadSuccess ls) { return true; }
5163     finally { jj_save(19, xla); }
5164   }
5165 
jj_2_21(int xla)5166   private boolean jj_2_21(int xla) {
5167     jj_la = xla; jj_lastpos = jj_scanpos = token;
5168     try { return !jj_3_21(); }
5169     catch(LookaheadSuccess ls) { return true; }
5170     finally { jj_save(20, xla); }
5171   }
5172 
jj_2_22(int xla)5173   private boolean jj_2_22(int xla) {
5174     jj_la = xla; jj_lastpos = jj_scanpos = token;
5175     try { return !jj_3_22(); }
5176     catch(LookaheadSuccess ls) { return true; }
5177     finally { jj_save(21, xla); }
5178   }
5179 
jj_2_23(int xla)5180   private boolean jj_2_23(int xla) {
5181     jj_la = xla; jj_lastpos = jj_scanpos = token;
5182     try { return !jj_3_23(); }
5183     catch(LookaheadSuccess ls) { return true; }
5184     finally { jj_save(22, xla); }
5185   }
5186 
jj_2_24(int xla)5187   private boolean jj_2_24(int xla) {
5188     jj_la = xla; jj_lastpos = jj_scanpos = token;
5189     try { return !jj_3_24(); }
5190     catch(LookaheadSuccess ls) { return true; }
5191     finally { jj_save(23, xla); }
5192   }
5193 
jj_2_25(int xla)5194   private boolean jj_2_25(int xla) {
5195     jj_la = xla; jj_lastpos = jj_scanpos = token;
5196     try { return !jj_3_25(); }
5197     catch(LookaheadSuccess ls) { return true; }
5198     finally { jj_save(24, xla); }
5199   }
5200 
jj_2_26(int xla)5201   private boolean jj_2_26(int xla) {
5202     jj_la = xla; jj_lastpos = jj_scanpos = token;
5203     try { return !jj_3_26(); }
5204     catch(LookaheadSuccess ls) { return true; }
5205     finally { jj_save(25, xla); }
5206   }
5207 
jj_2_27(int xla)5208   private boolean jj_2_27(int xla) {
5209     jj_la = xla; jj_lastpos = jj_scanpos = token;
5210     try { return !jj_3_27(); }
5211     catch(LookaheadSuccess ls) { return true; }
5212     finally { jj_save(26, xla); }
5213   }
5214 
jj_2_28(int xla)5215   private boolean jj_2_28(int xla) {
5216     jj_la = xla; jj_lastpos = jj_scanpos = token;
5217     try { return !jj_3_28(); }
5218     catch(LookaheadSuccess ls) { return true; }
5219     finally { jj_save(27, xla); }
5220   }
5221 
jj_2_29(int xla)5222   private boolean jj_2_29(int xla) {
5223     jj_la = xla; jj_lastpos = jj_scanpos = token;
5224     try { return !jj_3_29(); }
5225     catch(LookaheadSuccess ls) { return true; }
5226     finally { jj_save(28, xla); }
5227   }
5228 
jj_2_30(int xla)5229   private boolean jj_2_30(int xla) {
5230     jj_la = xla; jj_lastpos = jj_scanpos = token;
5231     try { return !jj_3_30(); }
5232     catch(LookaheadSuccess ls) { return true; }
5233     finally { jj_save(29, xla); }
5234   }
5235 
jj_2_31(int xla)5236   private boolean jj_2_31(int xla) {
5237     jj_la = xla; jj_lastpos = jj_scanpos = token;
5238     try { return !jj_3_31(); }
5239     catch(LookaheadSuccess ls) { return true; }
5240     finally { jj_save(30, xla); }
5241   }
5242 
jj_2_32(int xla)5243   private boolean jj_2_32(int xla) {
5244     jj_la = xla; jj_lastpos = jj_scanpos = token;
5245     try { return !jj_3_32(); }
5246     catch(LookaheadSuccess ls) { return true; }
5247     finally { jj_save(31, xla); }
5248   }
5249 
jj_2_33(int xla)5250   private boolean jj_2_33(int xla) {
5251     jj_la = xla; jj_lastpos = jj_scanpos = token;
5252     try { return !jj_3_33(); }
5253     catch(LookaheadSuccess ls) { return true; }
5254     finally { jj_save(32, xla); }
5255   }
5256 
jj_2_34(int xla)5257   private boolean jj_2_34(int xla) {
5258     jj_la = xla; jj_lastpos = jj_scanpos = token;
5259     try { return !jj_3_34(); }
5260     catch(LookaheadSuccess ls) { return true; }
5261     finally { jj_save(33, xla); }
5262   }
5263 
jj_2_35(int xla)5264   private boolean jj_2_35(int xla) {
5265     jj_la = xla; jj_lastpos = jj_scanpos = token;
5266     try { return !jj_3_35(); }
5267     catch(LookaheadSuccess ls) { return true; }
5268     finally { jj_save(34, xla); }
5269   }
5270 
jj_2_36(int xla)5271   private boolean jj_2_36(int xla) {
5272     jj_la = xla; jj_lastpos = jj_scanpos = token;
5273     try { return !jj_3_36(); }
5274     catch(LookaheadSuccess ls) { return true; }
5275     finally { jj_save(35, xla); }
5276   }
5277 
jj_2_37(int xla)5278   private boolean jj_2_37(int xla) {
5279     jj_la = xla; jj_lastpos = jj_scanpos = token;
5280     try { return !jj_3_37(); }
5281     catch(LookaheadSuccess ls) { return true; }
5282     finally { jj_save(36, xla); }
5283   }
5284 
jj_2_38(int xla)5285   private boolean jj_2_38(int xla) {
5286     jj_la = xla; jj_lastpos = jj_scanpos = token;
5287     try { return !jj_3_38(); }
5288     catch(LookaheadSuccess ls) { return true; }
5289     finally { jj_save(37, xla); }
5290   }
5291 
jj_2_39(int xla)5292   private boolean jj_2_39(int xla) {
5293     jj_la = xla; jj_lastpos = jj_scanpos = token;
5294     try { return !jj_3_39(); }
5295     catch(LookaheadSuccess ls) { return true; }
5296     finally { jj_save(38, xla); }
5297   }
5298 
jj_2_40(int xla)5299   private boolean jj_2_40(int xla) {
5300     jj_la = xla; jj_lastpos = jj_scanpos = token;
5301     try { return !jj_3_40(); }
5302     catch(LookaheadSuccess ls) { return true; }
5303     finally { jj_save(39, xla); }
5304   }
5305 
jj_2_41(int xla)5306   private boolean jj_2_41(int xla) {
5307     jj_la = xla; jj_lastpos = jj_scanpos = token;
5308     try { return !jj_3_41(); }
5309     catch(LookaheadSuccess ls) { return true; }
5310     finally { jj_save(40, xla); }
5311   }
5312 
jj_2_42(int xla)5313   private boolean jj_2_42(int xla) {
5314     jj_la = xla; jj_lastpos = jj_scanpos = token;
5315     try { return !jj_3_42(); }
5316     catch(LookaheadSuccess ls) { return true; }
5317     finally { jj_save(41, xla); }
5318   }
5319 
jj_2_43(int xla)5320   private boolean jj_2_43(int xla) {
5321     jj_la = xla; jj_lastpos = jj_scanpos = token;
5322     try { return !jj_3_43(); }
5323     catch(LookaheadSuccess ls) { return true; }
5324     finally { jj_save(42, xla); }
5325   }
5326 
jj_2_44(int xla)5327   private boolean jj_2_44(int xla) {
5328     jj_la = xla; jj_lastpos = jj_scanpos = token;
5329     try { return !jj_3_44(); }
5330     catch(LookaheadSuccess ls) { return true; }
5331     finally { jj_save(43, xla); }
5332   }
5333 
jj_2_45(int xla)5334   private boolean jj_2_45(int xla) {
5335     jj_la = xla; jj_lastpos = jj_scanpos = token;
5336     try { return !jj_3_45(); }
5337     catch(LookaheadSuccess ls) { return true; }
5338     finally { jj_save(44, xla); }
5339   }
5340 
jj_2_46(int xla)5341   private boolean jj_2_46(int xla) {
5342     jj_la = xla; jj_lastpos = jj_scanpos = token;
5343     try { return !jj_3_46(); }
5344     catch(LookaheadSuccess ls) { return true; }
5345     finally { jj_save(45, xla); }
5346   }
5347 
jj_2_47(int xla)5348   private boolean jj_2_47(int xla) {
5349     jj_la = xla; jj_lastpos = jj_scanpos = token;
5350     try { return !jj_3_47(); }
5351     catch(LookaheadSuccess ls) { return true; }
5352     finally { jj_save(46, xla); }
5353   }
5354 
jj_3R_172()5355   private boolean jj_3R_172() {
5356     if (jj_3R_168()) return true;
5357     Token xsp;
5358     xsp = jj_scanpos;
5359     if (jj_3R_207()) jj_scanpos = xsp;
5360     return false;
5361   }
5362 
jj_3R_294()5363   private boolean jj_3R_294() {
5364     if (jj_3R_133()) return true;
5365     Token xsp;
5366     while (true) {
5367       xsp = jj_scanpos;
5368       if (jj_3_25()) { jj_scanpos = xsp; break; }
5369     }
5370     return false;
5371   }
5372 
jj_3R_422()5373   private boolean jj_3R_422() {
5374     if (jj_3R_100()) return true;
5375     return false;
5376   }
5377 
jj_3R_155()5378   private boolean jj_3R_155() {
5379     if (jj_3R_94()) return true;
5380     if (jj_scan_token(RPAREN)) return true;
5381     if (jj_3R_201()) return true;
5382     return false;
5383   }
5384 
jj_3R_424()5385   private boolean jj_3R_424() {
5386     Token xsp;
5387     while (true) {
5388       xsp = jj_scanpos;
5389       if (jj_3R_437()) { jj_scanpos = xsp; break; }
5390     }
5391     xsp = jj_scanpos;
5392     if (jj_3R_438()) jj_scanpos = xsp;
5393     return false;
5394   }
5395 
jj_3_24()5396   private boolean jj_3_24() {
5397     if (jj_3R_107()) return true;
5398     if (jj_scan_token(RPAREN)) return true;
5399     if (jj_3R_174()) return true;
5400     return false;
5401   }
5402 
jj_3R_88()5403   private boolean jj_3R_88() {
5404     if (jj_scan_token(LBRACKET)) return true;
5405     if (jj_scan_token(RBRACKET)) return true;
5406     return false;
5407   }
5408 
jj_3R_421()5409   private boolean jj_3R_421() {
5410     if (jj_scan_token(IDENTIFIER)) return true;
5411     return false;
5412   }
5413 
jj_3R_423()5414   private boolean jj_3R_423() {
5415     if (jj_3R_436()) return true;
5416     return false;
5417   }
5418 
jj_3R_388()5419   private boolean jj_3R_388() {
5420     if (jj_scan_token(COMMA)) return true;
5421     if (jj_3R_172()) return true;
5422     return false;
5423   }
5424 
jj_3R_361()5425   private boolean jj_3R_361() {
5426     if (jj_scan_token(TRY)) return true;
5427     Token xsp;
5428     xsp = jj_scanpos;
5429     if (jj_3R_423()) jj_scanpos = xsp;
5430     if (jj_3R_128()) return true;
5431     xsp = jj_scanpos;
5432     if (jj_3R_424()) {
5433     jj_scanpos = xsp;
5434     if (jj_3R_425()) return true;
5435     }
5436     return false;
5437   }
5438 
jj_3R_154()5439   private boolean jj_3R_154() {
5440     if (jj_3R_123()) return true;
5441     return false;
5442   }
5443 
jj_3R_302()5444   private boolean jj_3R_302() {
5445     if (jj_3R_87()) return true;
5446     if (jj_3R_172()) return true;
5447     Token xsp;
5448     while (true) {
5449       xsp = jj_scanpos;
5450       if (jj_3R_388()) { jj_scanpos = xsp; break; }
5451     }
5452     if (jj_scan_token(SEMICOLON)) return true;
5453     return false;
5454   }
5455 
jj_3R_104()5456   private boolean jj_3R_104() {
5457     if (jj_scan_token(LPAREN)) return true;
5458     Token xsp;
5459     while (true) {
5460       xsp = jj_scanpos;
5461       if (jj_3R_154()) { jj_scanpos = xsp; break; }
5462     }
5463     xsp = jj_scanpos;
5464     if (jj_3_24()) {
5465     jj_scanpos = xsp;
5466     if (jj_3R_155()) return true;
5467     }
5468     return false;
5469   }
5470 
jj_3R_241()5471   private boolean jj_3R_241() {
5472     if (jj_scan_token(SEMICOLON)) return true;
5473     return false;
5474   }
5475 
jj_3R_420()5476   private boolean jj_3R_420() {
5477     if (jj_scan_token(IDENTIFIER)) return true;
5478     return false;
5479   }
5480 
jj_3R_106()5481   private boolean jj_3R_106() {
5482     if (jj_scan_token(DECR)) return true;
5483     return false;
5484   }
5485 
jj_3_23()5486   private boolean jj_3_23() {
5487     Token xsp;
5488     xsp = jj_scanpos;
5489     if (jj_3R_105()) {
5490     jj_scanpos = xsp;
5491     if (jj_3R_106()) return true;
5492     }
5493     return false;
5494   }
5495 
jj_3R_105()5496   private boolean jj_3R_105() {
5497     if (jj_scan_token(INCR)) return true;
5498     return false;
5499   }
5500 
jj_3_5()5501   private boolean jj_3_5() {
5502     if (jj_3R_87()) return true;
5503     if (jj_scan_token(IDENTIFIER)) return true;
5504     Token xsp;
5505     while (true) {
5506       xsp = jj_scanpos;
5507       if (jj_3R_88()) { jj_scanpos = xsp; break; }
5508     }
5509     xsp = jj_scanpos;
5510     if (jj_scan_token(88)) {
5511     jj_scanpos = xsp;
5512     if (jj_scan_token(91)) {
5513     jj_scanpos = xsp;
5514     if (jj_scan_token(87)) return true;
5515     }
5516     }
5517     return false;
5518   }
5519 
jj_3R_86()5520   private boolean jj_3R_86() {
5521     if (jj_3R_125()) return true;
5522     return false;
5523   }
5524 
jj_3_22()5525   private boolean jj_3_22() {
5526     if (jj_3R_104()) return true;
5527     return false;
5528   }
5529 
jj_3_4()5530   private boolean jj_3_4() {
5531     Token xsp;
5532     xsp = jj_scanpos;
5533     if (jj_3R_86()) jj_scanpos = xsp;
5534     if (jj_scan_token(IDENTIFIER)) return true;
5535     if (jj_scan_token(LPAREN)) return true;
5536     return false;
5537   }
5538 
jj_3R_216()5539   private boolean jj_3R_216() {
5540     if (jj_3R_245()) return true;
5541     return false;
5542   }
5543 
jj_3R_267()5544   private boolean jj_3R_267() {
5545     if (jj_3R_294()) return true;
5546     Token xsp;
5547     xsp = jj_scanpos;
5548     if (jj_3_23()) jj_scanpos = xsp;
5549     return false;
5550   }
5551 
jj_3R_277()5552   private boolean jj_3R_277() {
5553     if (jj_3R_303()) return true;
5554     return false;
5555   }
5556 
jj_3R_360()5557   private boolean jj_3R_360() {
5558     if (jj_scan_token(SYNCHRONIZED)) return true;
5559     if (jj_scan_token(LPAREN)) return true;
5560     if (jj_3R_100()) return true;
5561     if (jj_scan_token(RPAREN)) return true;
5562     if (jj_3R_128()) return true;
5563     return false;
5564   }
5565 
jj_3R_271()5566   private boolean jj_3R_271() {
5567     if (jj_scan_token(_DEFAULT)) return true;
5568     if (jj_3R_116()) return true;
5569     return false;
5570   }
5571 
jj_3R_276()5572   private boolean jj_3R_276() {
5573     if (jj_3R_302()) return true;
5574     return false;
5575   }
5576 
jj_3R_235()5577   private boolean jj_3R_235() {
5578     if (jj_3R_104()) return true;
5579     return false;
5580   }
5581 
jj_3R_236()5582   private boolean jj_3R_236() {
5583     if (jj_3R_267()) return true;
5584     return false;
5585   }
5586 
jj_3R_266()5587   private boolean jj_3R_266() {
5588     if (jj_scan_token(BANG)) return true;
5589     return false;
5590   }
5591 
jj_3R_275()5592   private boolean jj_3R_275() {
5593     if (jj_3R_301()) return true;
5594     return false;
5595   }
5596 
jj_3R_265()5597   private boolean jj_3R_265() {
5598     if (jj_scan_token(TILDE)) return true;
5599     return false;
5600   }
5601 
jj_3R_274()5602   private boolean jj_3R_274() {
5603     if (jj_3R_300()) return true;
5604     return false;
5605   }
5606 
jj_3R_234()5607   private boolean jj_3R_234() {
5608     Token xsp;
5609     xsp = jj_scanpos;
5610     if (jj_3R_265()) {
5611     jj_scanpos = xsp;
5612     if (jj_3R_266()) return true;
5613     }
5614     if (jj_3R_174()) return true;
5615     return false;
5616   }
5617 
jj_3R_273()5618   private boolean jj_3R_273() {
5619     if (jj_3R_299()) return true;
5620     return false;
5621   }
5622 
jj_3R_272()5623   private boolean jj_3R_272() {
5624     if (jj_3R_298()) return true;
5625     return false;
5626   }
5627 
jj_3R_359()5628   private boolean jj_3R_359() {
5629     if (jj_scan_token(THROW)) return true;
5630     if (jj_3R_100()) return true;
5631     if (jj_scan_token(SEMICOLON)) return true;
5632     return false;
5633   }
5634 
jj_3R_201()5635   private boolean jj_3R_201() {
5636     Token xsp;
5637     xsp = jj_scanpos;
5638     if (jj_3R_234()) {
5639     jj_scanpos = xsp;
5640     if (jj_3R_235()) {
5641     jj_scanpos = xsp;
5642     if (jj_3R_236()) return true;
5643     }
5644     }
5645     return false;
5646   }
5647 
jj_3R_358()5648   private boolean jj_3R_358() {
5649     if (jj_scan_token(RETURN)) return true;
5650     Token xsp;
5651     xsp = jj_scanpos;
5652     if (jj_3R_422()) jj_scanpos = xsp;
5653     if (jj_scan_token(SEMICOLON)) return true;
5654     return false;
5655   }
5656 
jj_3R_461()5657   private boolean jj_3R_461() {
5658     if (jj_scan_token(COMMA)) return true;
5659     if (jj_3R_100()) return true;
5660     return false;
5661   }
5662 
jj_3R_240()5663   private boolean jj_3R_240() {
5664     if (jj_3R_116()) return true;
5665     Token xsp;
5666     xsp = jj_scanpos;
5667     if (jj_3R_271()) jj_scanpos = xsp;
5668     xsp = jj_scanpos;
5669     if (jj_3R_272()) {
5670     jj_scanpos = xsp;
5671     if (jj_3R_273()) {
5672     jj_scanpos = xsp;
5673     if (jj_3R_274()) {
5674     jj_scanpos = xsp;
5675     if (jj_3R_275()) {
5676     jj_scanpos = xsp;
5677     if (jj_3R_276()) {
5678     jj_scanpos = xsp;
5679     if (jj_3R_277()) return true;
5680     }
5681     }
5682     }
5683     }
5684     }
5685     return false;
5686   }
5687 
jj_3R_242()5688   private boolean jj_3R_242() {
5689     if (jj_scan_token(DECR)) return true;
5690     if (jj_3R_174()) return true;
5691     return false;
5692   }
5693 
jj_3R_357()5694   private boolean jj_3R_357() {
5695     if (jj_scan_token(CONTINUE)) return true;
5696     Token xsp;
5697     xsp = jj_scanpos;
5698     if (jj_3R_421()) jj_scanpos = xsp;
5699     if (jj_scan_token(SEMICOLON)) return true;
5700     return false;
5701   }
5702 
jj_3_6()5703   private boolean jj_3_6() {
5704     if (jj_3R_89()) return true;
5705     return false;
5706   }
5707 
jj_3R_417()5708   private boolean jj_3R_417() {
5709     if (jj_scan_token(ELSE)) return true;
5710     if (jj_3R_306()) return true;
5711     return false;
5712   }
5713 
jj_3R_118()5714   private boolean jj_3R_118() {
5715     if (jj_scan_token(INCR)) return true;
5716     if (jj_3R_174()) return true;
5717     return false;
5718   }
5719 
jj_3R_435()5720   private boolean jj_3R_435() {
5721     if (jj_3R_452()) return true;
5722     return false;
5723   }
5724 
jj_3R_211()5725   private boolean jj_3R_211() {
5726     if (jj_3R_201()) return true;
5727     return false;
5728   }
5729 
jj_3R_206()5730   private boolean jj_3R_206() {
5731     Token xsp;
5732     xsp = jj_scanpos;
5733     if (jj_3_6()) {
5734     jj_scanpos = xsp;
5735     if (jj_3R_240()) {
5736     jj_scanpos = xsp;
5737     if (jj_3R_241()) return true;
5738     }
5739     }
5740     return false;
5741   }
5742 
jj_3R_356()5743   private boolean jj_3R_356() {
5744     if (jj_scan_token(BREAK)) return true;
5745     Token xsp;
5746     xsp = jj_scanpos;
5747     if (jj_3R_420()) jj_scanpos = xsp;
5748     if (jj_scan_token(SEMICOLON)) return true;
5749     return false;
5750   }
5751 
jj_3R_171()5752   private boolean jj_3R_171() {
5753     if (jj_3R_206()) return true;
5754     return false;
5755   }
5756 
jj_3R_452()5757   private boolean jj_3R_452() {
5758     if (jj_3R_459()) return true;
5759     return false;
5760   }
5761 
jj_3R_279()5762   private boolean jj_3R_279() {
5763     if (jj_3R_123()) return true;
5764     return false;
5765   }
5766 
jj_3R_244()5767   private boolean jj_3R_244() {
5768     if (jj_scan_token(MINUS)) return true;
5769     return false;
5770   }
5771 
jj_3R_113()5772   private boolean jj_3R_113() {
5773     if (jj_scan_token(LBRACE)) return true;
5774     Token xsp;
5775     while (true) {
5776       xsp = jj_scanpos;
5777       if (jj_3R_171()) { jj_scanpos = xsp; break; }
5778     }
5779     if (jj_scan_token(RBRACE)) return true;
5780     return false;
5781   }
5782 
jj_3R_305()5783   private boolean jj_3R_305() {
5784     if (jj_3R_123()) return true;
5785     return false;
5786   }
5787 
jj_3R_243()5788   private boolean jj_3R_243() {
5789     if (jj_scan_token(PLUS)) return true;
5790     return false;
5791   }
5792 
jj_3R_210()5793   private boolean jj_3R_210() {
5794     Token xsp;
5795     xsp = jj_scanpos;
5796     if (jj_3R_243()) {
5797     jj_scanpos = xsp;
5798     if (jj_3R_244()) return true;
5799     }
5800     if (jj_3R_174()) return true;
5801     return false;
5802   }
5803 
jj_3R_209()5804   private boolean jj_3R_209() {
5805     if (jj_3R_242()) return true;
5806     return false;
5807   }
5808 
jj_3_41()5809   private boolean jj_3_41() {
5810     if (jj_3R_116()) return true;
5811     if (jj_3R_87()) return true;
5812     if (jj_scan_token(IDENTIFIER)) return true;
5813     return false;
5814   }
5815 
jj_3R_208()5816   private boolean jj_3R_208() {
5817     if (jj_3R_118()) return true;
5818     return false;
5819   }
5820 
jj_3R_280()5821   private boolean jj_3R_280() {
5822     if (jj_scan_token(BIT_AND)) return true;
5823     Token xsp;
5824     while (true) {
5825       xsp = jj_scanpos;
5826       if (jj_3R_305()) { jj_scanpos = xsp; break; }
5827     }
5828     if (jj_3R_198()) return true;
5829     return false;
5830   }
5831 
jj_3R_459()5832   private boolean jj_3R_459() {
5833     if (jj_3R_100()) return true;
5834     Token xsp;
5835     while (true) {
5836       xsp = jj_scanpos;
5837       if (jj_3R_461()) { jj_scanpos = xsp; break; }
5838     }
5839     return false;
5840   }
5841 
jj_3R_245()5842   private boolean jj_3R_245() {
5843     if (jj_scan_token(EXTENDS)) return true;
5844     Token xsp;
5845     while (true) {
5846       xsp = jj_scanpos;
5847       if (jj_3R_279()) { jj_scanpos = xsp; break; }
5848     }
5849     if (jj_3R_198()) return true;
5850     while (true) {
5851       xsp = jj_scanpos;
5852       if (jj_3R_280()) { jj_scanpos = xsp; break; }
5853     }
5854     return false;
5855   }
5856 
jj_3R_458()5857   private boolean jj_3R_458() {
5858     if (jj_3R_459()) return true;
5859     return false;
5860   }
5861 
jj_3R_434()5862   private boolean jj_3R_434() {
5863     if (jj_3R_100()) return true;
5864     return false;
5865   }
5866 
jj_3R_457()5867   private boolean jj_3R_457() {
5868     if (jj_3R_117()) return true;
5869     return false;
5870   }
5871 
jj_3R_174()5872   private boolean jj_3R_174() {
5873     Token xsp;
5874     xsp = jj_scanpos;
5875     if (jj_3R_208()) {
5876     jj_scanpos = xsp;
5877     if (jj_3R_209()) {
5878     jj_scanpos = xsp;
5879     if (jj_3R_210()) {
5880     jj_scanpos = xsp;
5881     if (jj_3R_211()) return true;
5882     }
5883     }
5884     }
5885     return false;
5886   }
5887 
jj_3R_430()5888   private boolean jj_3R_430() {
5889     if (jj_scan_token(REM)) return true;
5890     return false;
5891   }
5892 
jj_3_3()5893   private boolean jj_3_3() {
5894     if (jj_scan_token(COMMA)) return true;
5895     if (jj_3R_85()) return true;
5896     return false;
5897   }
5898 
jj_3R_429()5899   private boolean jj_3R_429() {
5900     if (jj_scan_token(SLASH)) return true;
5901     return false;
5902   }
5903 
jj_3R_182()5904   private boolean jj_3R_182() {
5905     if (jj_scan_token(IDENTIFIER)) return true;
5906     Token xsp;
5907     xsp = jj_scanpos;
5908     if (jj_3R_216()) jj_scanpos = xsp;
5909     return false;
5910   }
5911 
jj_3R_428()5912   private boolean jj_3R_428() {
5913     if (jj_scan_token(STAR)) return true;
5914     return false;
5915   }
5916 
jj_3R_451()5917   private boolean jj_3R_451() {
5918     Token xsp;
5919     xsp = jj_scanpos;
5920     if (jj_3R_457()) {
5921     jj_scanpos = xsp;
5922     if (jj_3R_458()) return true;
5923     }
5924     return false;
5925   }
5926 
jj_3R_412()5927   private boolean jj_3R_412() {
5928     Token xsp;
5929     xsp = jj_scanpos;
5930     if (jj_3R_428()) {
5931     jj_scanpos = xsp;
5932     if (jj_3R_429()) {
5933     jj_scanpos = xsp;
5934     if (jj_3R_430()) return true;
5935     }
5936     }
5937     if (jj_3R_174()) return true;
5938     return false;
5939   }
5940 
jj_3R_217()5941   private boolean jj_3R_217() {
5942     if (jj_3R_123()) return true;
5943     return false;
5944   }
5945 
jj_3R_408()5946   private boolean jj_3R_408() {
5947     if (jj_3R_113()) return true;
5948     return false;
5949   }
5950 
jj_3_40()5951   private boolean jj_3_40() {
5952     if (jj_3R_117()) return true;
5953     if (jj_scan_token(COLON)) return true;
5954     return false;
5955   }
5956 
jj_3R_376()5957   private boolean jj_3R_376() {
5958     if (jj_3R_174()) return true;
5959     Token xsp;
5960     while (true) {
5961       xsp = jj_scanpos;
5962       if (jj_3R_412()) { jj_scanpos = xsp; break; }
5963     }
5964     return false;
5965   }
5966 
jj_3R_183()5967   private boolean jj_3R_183() {
5968     if (jj_scan_token(COMMA)) return true;
5969     Token xsp;
5970     while (true) {
5971       xsp = jj_scanpos;
5972       if (jj_3R_217()) { jj_scanpos = xsp; break; }
5973     }
5974     if (jj_3R_182()) return true;
5975     return false;
5976   }
5977 
jj_3R_181()5978   private boolean jj_3R_181() {
5979     if (jj_3R_123()) return true;
5980     return false;
5981   }
5982 
jj_3R_433()5983   private boolean jj_3R_433() {
5984     if (jj_3R_451()) return true;
5985     return false;
5986   }
5987 
jj_3R_414()5988   private boolean jj_3R_414() {
5989     if (jj_scan_token(MINUS)) return true;
5990     return false;
5991   }
5992 
jj_3R_413()5993   private boolean jj_3R_413() {
5994     if (jj_scan_token(PLUS)) return true;
5995     return false;
5996   }
5997 
jj_3R_125()5998   private boolean jj_3R_125() {
5999     if (jj_scan_token(LT)) return true;
6000     Token xsp;
6001     while (true) {
6002       xsp = jj_scanpos;
6003       if (jj_3R_181()) { jj_scanpos = xsp; break; }
6004     }
6005     if (jj_3R_182()) return true;
6006     while (true) {
6007       xsp = jj_scanpos;
6008       if (jj_3R_183()) { jj_scanpos = xsp; break; }
6009     }
6010     if (jj_scan_token(GT)) return true;
6011     return false;
6012   }
6013 
jj_3R_419()6014   private boolean jj_3R_419() {
6015     Token xsp;
6016     xsp = jj_scanpos;
6017     if (jj_3R_433()) jj_scanpos = xsp;
6018     if (jj_scan_token(SEMICOLON)) return true;
6019     xsp = jj_scanpos;
6020     if (jj_3R_434()) jj_scanpos = xsp;
6021     if (jj_scan_token(SEMICOLON)) return true;
6022     xsp = jj_scanpos;
6023     if (jj_3R_435()) jj_scanpos = xsp;
6024     return false;
6025   }
6026 
jj_3R_402()6027   private boolean jj_3R_402() {
6028     Token xsp;
6029     xsp = jj_scanpos;
6030     if (jj_3R_413()) {
6031     jj_scanpos = xsp;
6032     if (jj_3R_414()) return true;
6033     }
6034     if (jj_3R_376()) return true;
6035     return false;
6036   }
6037 
jj_3R_418()6038   private boolean jj_3R_418() {
6039     if (jj_3R_117()) return true;
6040     if (jj_scan_token(COLON)) return true;
6041     if (jj_3R_100()) return true;
6042     return false;
6043   }
6044 
jj_3R_372()6045   private boolean jj_3R_372() {
6046     if (jj_3R_376()) return true;
6047     Token xsp;
6048     while (true) {
6049       xsp = jj_scanpos;
6050       if (jj_3R_402()) { jj_scanpos = xsp; break; }
6051     }
6052     return false;
6053   }
6054 
jj_3R_355()6055   private boolean jj_3R_355() {
6056     if (jj_scan_token(FOR)) return true;
6057     if (jj_scan_token(LPAREN)) return true;
6058     Token xsp;
6059     xsp = jj_scanpos;
6060     if (jj_3R_418()) {
6061     jj_scanpos = xsp;
6062     if (jj_3R_419()) return true;
6063     }
6064     if (jj_scan_token(RPAREN)) return true;
6065     if (jj_3R_306()) return true;
6066     return false;
6067   }
6068 
jj_3R_407()6069   private boolean jj_3R_407() {
6070     if (jj_3R_187()) return true;
6071     return false;
6072   }
6073 
jj_3_21()6074   private boolean jj_3_21() {
6075     if (jj_3R_103()) return true;
6076     return false;
6077   }
6078 
jj_3_20()6079   private boolean jj_3_20() {
6080     if (jj_3R_102()) return true;
6081     return false;
6082   }
6083 
jj_3R_124()6084   private boolean jj_3R_124() {
6085     if (jj_3R_123()) return true;
6086     return false;
6087   }
6088 
jj_3R_101()6089   private boolean jj_3R_101() {
6090     if (jj_scan_token(LSHIFT)) return true;
6091     return false;
6092   }
6093 
jj_3_19()6094   private boolean jj_3_19() {
6095     Token xsp;
6096     xsp = jj_scanpos;
6097     if (jj_3R_101()) {
6098     jj_scanpos = xsp;
6099     if (jj_3_20()) {
6100     jj_scanpos = xsp;
6101     if (jj_3_21()) return true;
6102     }
6103     }
6104     if (jj_3R_372()) return true;
6105     return false;
6106   }
6107 
jj_3R_85()6108   private boolean jj_3R_85() {
6109     Token xsp;
6110     while (true) {
6111       xsp = jj_scanpos;
6112       if (jj_3R_124()) { jj_scanpos = xsp; break; }
6113     }
6114     if (jj_scan_token(IDENTIFIER)) return true;
6115     xsp = jj_scanpos;
6116     if (jj_3R_407()) jj_scanpos = xsp;
6117     xsp = jj_scanpos;
6118     if (jj_3R_408()) jj_scanpos = xsp;
6119     return false;
6120   }
6121 
jj_3R_398()6122   private boolean jj_3R_398() {
6123     if (jj_3R_206()) return true;
6124     return false;
6125   }
6126 
jj_3R_373()6127   private boolean jj_3R_373() {
6128     if (jj_scan_token(INSTANCEOF)) return true;
6129     if (jj_3R_87()) return true;
6130     return false;
6131   }
6132 
jj_3R_354()6133   private boolean jj_3R_354() {
6134     if (jj_scan_token(DO)) return true;
6135     if (jj_3R_306()) return true;
6136     if (jj_scan_token(WHILE)) return true;
6137     if (jj_scan_token(LPAREN)) return true;
6138     if (jj_3R_100()) return true;
6139     if (jj_scan_token(RPAREN)) return true;
6140     if (jj_scan_token(SEMICOLON)) return true;
6141     return false;
6142   }
6143 
jj_3R_370()6144   private boolean jj_3R_370() {
6145     if (jj_3R_372()) return true;
6146     Token xsp;
6147     while (true) {
6148       xsp = jj_scanpos;
6149       if (jj_3_19()) { jj_scanpos = xsp; break; }
6150     }
6151     return false;
6152   }
6153 
jj_3R_383()6154   private boolean jj_3R_383() {
6155     if (jj_scan_token(SEMICOLON)) return true;
6156     Token xsp;
6157     while (true) {
6158       xsp = jj_scanpos;
6159       if (jj_3R_398()) { jj_scanpos = xsp; break; }
6160     }
6161     return false;
6162   }
6163 
jj_3R_395()6164   private boolean jj_3R_395() {
6165     if (jj_scan_token(GE)) return true;
6166     return false;
6167   }
6168 
jj_3R_394()6169   private boolean jj_3R_394() {
6170     if (jj_scan_token(LE)) return true;
6171     return false;
6172   }
6173 
jj_3R_393()6174   private boolean jj_3R_393() {
6175     if (jj_scan_token(GT)) return true;
6176     return false;
6177   }
6178 
jj_3R_392()6179   private boolean jj_3R_392() {
6180     if (jj_scan_token(LT)) return true;
6181     return false;
6182   }
6183 
jj_3R_377()6184   private boolean jj_3R_377() {
6185     Token xsp;
6186     xsp = jj_scanpos;
6187     if (jj_3R_392()) {
6188     jj_scanpos = xsp;
6189     if (jj_3R_393()) {
6190     jj_scanpos = xsp;
6191     if (jj_3R_394()) {
6192     jj_scanpos = xsp;
6193     if (jj_3R_395()) return true;
6194     }
6195     }
6196     }
6197     if (jj_3R_370()) return true;
6198     return false;
6199   }
6200 
jj_3R_353()6201   private boolean jj_3R_353() {
6202     if (jj_scan_token(WHILE)) return true;
6203     if (jj_scan_token(LPAREN)) return true;
6204     if (jj_3R_100()) return true;
6205     if (jj_scan_token(RPAREN)) return true;
6206     if (jj_3R_306()) return true;
6207     return false;
6208   }
6209 
jj_3R_382()6210   private boolean jj_3R_382() {
6211     if (jj_3R_85()) return true;
6212     Token xsp;
6213     while (true) {
6214       xsp = jj_scanpos;
6215       if (jj_3_3()) { jj_scanpos = xsp; break; }
6216     }
6217     return false;
6218   }
6219 
jj_3R_368()6220   private boolean jj_3R_368() {
6221     if (jj_3R_370()) return true;
6222     Token xsp;
6223     while (true) {
6224       xsp = jj_scanpos;
6225       if (jj_3R_377()) { jj_scanpos = xsp; break; }
6226     }
6227     return false;
6228   }
6229 
jj_3R_381()6230   private boolean jj_3R_381() {
6231     if (jj_3R_397()) return true;
6232     return false;
6233   }
6234 
jj_3R_369()6235   private boolean jj_3R_369() {
6236     if (jj_scan_token(BIT_AND)) return true;
6237     if (jj_3R_345()) return true;
6238     return false;
6239   }
6240 
jj_3R_299()6241   private boolean jj_3R_299() {
6242     if (jj_scan_token(ENUM)) return true;
6243     if (jj_3R_119()) return true;
6244     Token xsp;
6245     xsp = jj_scanpos;
6246     if (jj_3R_381()) jj_scanpos = xsp;
6247     if (jj_scan_token(LBRACE)) return true;
6248     xsp = jj_scanpos;
6249     if (jj_3R_382()) jj_scanpos = xsp;
6250     xsp = jj_scanpos;
6251     if (jj_scan_token(88)) jj_scanpos = xsp;
6252     xsp = jj_scanpos;
6253     if (jj_3R_383()) jj_scanpos = xsp;
6254     if (jj_scan_token(RBRACE)) return true;
6255     return false;
6256   }
6257 
jj_3R_364()6258   private boolean jj_3R_364() {
6259     if (jj_3R_368()) return true;
6260     Token xsp;
6261     xsp = jj_scanpos;
6262     if (jj_3R_373()) jj_scanpos = xsp;
6263     return false;
6264   }
6265 
jj_3R_352()6266   private boolean jj_3R_352() {
6267     if (jj_scan_token(IF)) return true;
6268     if (jj_scan_token(LPAREN)) return true;
6269     if (jj_3R_100()) return true;
6270     if (jj_scan_token(RPAREN)) return true;
6271     if (jj_3R_306()) return true;
6272     Token xsp;
6273     xsp = jj_scanpos;
6274     if (jj_3R_417()) jj_scanpos = xsp;
6275     return false;
6276   }
6277 
jj_3R_405()6278   private boolean jj_3R_405() {
6279     if (jj_3R_123()) return true;
6280     return false;
6281   }
6282 
jj_3R_375()6283   private boolean jj_3R_375() {
6284     if (jj_scan_token(NE)) return true;
6285     return false;
6286   }
6287 
jj_3R_374()6288   private boolean jj_3R_374() {
6289     if (jj_scan_token(EQ)) return true;
6290     return false;
6291   }
6292 
jj_3R_371()6293   private boolean jj_3R_371() {
6294     Token xsp;
6295     xsp = jj_scanpos;
6296     if (jj_3R_374()) {
6297     jj_scanpos = xsp;
6298     if (jj_3R_375()) return true;
6299     }
6300     if (jj_3R_364()) return true;
6301     return false;
6302   }
6303 
jj_3R_365()6304   private boolean jj_3R_365() {
6305     if (jj_scan_token(XOR)) return true;
6306     if (jj_3R_315()) return true;
6307     return false;
6308   }
6309 
jj_3R_346()6310   private boolean jj_3R_346() {
6311     if (jj_scan_token(BIT_OR)) return true;
6312     if (jj_3R_293()) return true;
6313     return false;
6314   }
6315 
jj_3R_406()6316   private boolean jj_3R_406() {
6317     if (jj_scan_token(COMMA)) return true;
6318     if (jj_3R_198()) return true;
6319     return false;
6320   }
6321 
jj_3R_345()6322   private boolean jj_3R_345() {
6323     if (jj_3R_364()) return true;
6324     Token xsp;
6325     while (true) {
6326       xsp = jj_scanpos;
6327       if (jj_3R_371()) { jj_scanpos = xsp; break; }
6328     }
6329     return false;
6330   }
6331 
jj_3R_450()6332   private boolean jj_3R_450() {
6333     if (jj_scan_token(_DEFAULT)) return true;
6334     return false;
6335   }
6336 
jj_3R_449()6337   private boolean jj_3R_449() {
6338     if (jj_scan_token(CASE)) return true;
6339     if (jj_3R_100()) return true;
6340     return false;
6341   }
6342 
jj_3R_397()6343   private boolean jj_3R_397() {
6344     if (jj_scan_token(IMPLEMENTS)) return true;
6345     Token xsp;
6346     while (true) {
6347       xsp = jj_scanpos;
6348       if (jj_3R_405()) { jj_scanpos = xsp; break; }
6349     }
6350     if (jj_3R_198()) return true;
6351     while (true) {
6352       xsp = jj_scanpos;
6353       if (jj_3R_406()) { jj_scanpos = xsp; break; }
6354     }
6355     return false;
6356   }
6357 
jj_3R_403()6358   private boolean jj_3R_403() {
6359     if (jj_3R_123()) return true;
6360     return false;
6361   }
6362 
jj_3R_316()6363   private boolean jj_3R_316() {
6364     if (jj_scan_token(SC_AND)) return true;
6365     if (jj_3R_264()) return true;
6366     return false;
6367   }
6368 
jj_3R_315()6369   private boolean jj_3R_315() {
6370     if (jj_3R_345()) return true;
6371     Token xsp;
6372     while (true) {
6373       xsp = jj_scanpos;
6374       if (jj_3R_369()) { jj_scanpos = xsp; break; }
6375     }
6376     return false;
6377   }
6378 
jj_3R_432()6379   private boolean jj_3R_432() {
6380     Token xsp;
6381     xsp = jj_scanpos;
6382     if (jj_3R_449()) {
6383     jj_scanpos = xsp;
6384     if (jj_3R_450()) return true;
6385     }
6386     if (jj_scan_token(COLON)) return true;
6387     if (jj_3R_184()) return true;
6388     return false;
6389   }
6390 
jj_3R_295()6391   private boolean jj_3R_295() {
6392     if (jj_scan_token(SC_OR)) return true;
6393     if (jj_3R_233()) return true;
6394     return false;
6395   }
6396 
jj_3R_404()6397   private boolean jj_3R_404() {
6398     if (jj_scan_token(COMMA)) return true;
6399     if (jj_3R_198()) return true;
6400     return false;
6401   }
6402 
jj_3R_396()6403   private boolean jj_3R_396() {
6404     if (jj_scan_token(EXTENDS)) return true;
6405     Token xsp;
6406     while (true) {
6407       xsp = jj_scanpos;
6408       if (jj_3R_403()) { jj_scanpos = xsp; break; }
6409     }
6410     if (jj_3R_198()) return true;
6411     while (true) {
6412       xsp = jj_scanpos;
6413       if (jj_3R_404()) { jj_scanpos = xsp; break; }
6414     }
6415     return false;
6416   }
6417 
jj_3R_293()6418   private boolean jj_3R_293() {
6419     if (jj_3R_315()) return true;
6420     Token xsp;
6421     while (true) {
6422       xsp = jj_scanpos;
6423       if (jj_3R_365()) { jj_scanpos = xsp; break; }
6424     }
6425     return false;
6426   }
6427 
jj_3R_416()6428   private boolean jj_3R_416() {
6429     if (jj_3R_432()) return true;
6430     return false;
6431   }
6432 
jj_3R_351()6433   private boolean jj_3R_351() {
6434     if (jj_scan_token(SWITCH)) return true;
6435     if (jj_scan_token(LPAREN)) return true;
6436     if (jj_3R_100()) return true;
6437     if (jj_scan_token(RPAREN)) return true;
6438     if (jj_scan_token(LBRACE)) return true;
6439     Token xsp;
6440     while (true) {
6441       xsp = jj_scanpos;
6442       if (jj_3R_416()) { jj_scanpos = xsp; break; }
6443     }
6444     if (jj_scan_token(RBRACE)) return true;
6445     return false;
6446   }
6447 
jj_3R_319()6448   private boolean jj_3R_319() {
6449     if (jj_scan_token(INTERFACE)) return true;
6450     return false;
6451   }
6452 
jj_3R_264()6453   private boolean jj_3R_264() {
6454     if (jj_3R_293()) return true;
6455     Token xsp;
6456     while (true) {
6457       xsp = jj_scanpos;
6458       if (jj_3R_346()) { jj_scanpos = xsp; break; }
6459     }
6460     return false;
6461   }
6462 
jj_3R_380()6463   private boolean jj_3R_380() {
6464     if (jj_3R_397()) return true;
6465     return false;
6466   }
6467 
jj_3R_173()6468   private boolean jj_3R_173() {
6469     if (jj_scan_token(COMMA)) return true;
6470     if (jj_3R_172()) return true;
6471     return false;
6472   }
6473 
jj_3R_379()6474   private boolean jj_3R_379() {
6475     if (jj_3R_396()) return true;
6476     return false;
6477   }
6478 
jj_3R_378()6479   private boolean jj_3R_378() {
6480     if (jj_3R_125()) return true;
6481     return false;
6482   }
6483 
jj_3R_456()6484   private boolean jj_3R_456() {
6485     if (jj_3R_125()) return true;
6486     return false;
6487   }
6488 
jj_3R_233()6489   private boolean jj_3R_233() {
6490     if (jj_3R_264()) return true;
6491     Token xsp;
6492     while (true) {
6493       xsp = jj_scanpos;
6494       if (jj_3R_316()) { jj_scanpos = xsp; break; }
6495     }
6496     return false;
6497   }
6498 
jj_3R_298()6499   private boolean jj_3R_298() {
6500     Token xsp;
6501     xsp = jj_scanpos;
6502     if (jj_scan_token(20)) {
6503     jj_scanpos = xsp;
6504     if (jj_3R_319()) return true;
6505     }
6506     if (jj_3R_119()) return true;
6507     xsp = jj_scanpos;
6508     if (jj_3R_378()) jj_scanpos = xsp;
6509     xsp = jj_scanpos;
6510     if (jj_3R_379()) jj_scanpos = xsp;
6511     xsp = jj_scanpos;
6512     if (jj_3R_380()) jj_scanpos = xsp;
6513     if (jj_3R_113()) return true;
6514     return false;
6515   }
6516 
jj_3R_448()6517   private boolean jj_3R_448() {
6518     if (jj_scan_token(ARROW)) return true;
6519     if (jj_3R_296()) return true;
6520     return false;
6521   }
6522 
jj_3R_447()6523   private boolean jj_3R_447() {
6524     if (jj_scan_token(DOUBLECOLON)) return true;
6525     Token xsp;
6526     xsp = jj_scanpos;
6527     if (jj_3R_456()) jj_scanpos = xsp;
6528     xsp = jj_scanpos;
6529     if (jj_scan_token(78)) {
6530     jj_scanpos = xsp;
6531     if (jj_scan_token(43)) return true;
6532     }
6533     return false;
6534   }
6535 
jj_3R_446()6536   private boolean jj_3R_446() {
6537     if (jj_3R_99()) return true;
6538     if (jj_3R_100()) return true;
6539     return false;
6540   }
6541 
jj_3R_445()6542   private boolean jj_3R_445() {
6543     if (jj_scan_token(DECR)) return true;
6544     return false;
6545   }
6546 
jj_3R_200()6547   private boolean jj_3R_200() {
6548     if (jj_3R_233()) return true;
6549     Token xsp;
6550     while (true) {
6551       xsp = jj_scanpos;
6552       if (jj_3R_295()) { jj_scanpos = xsp; break; }
6553     }
6554     return false;
6555   }
6556 
jj_3R_444()6557   private boolean jj_3R_444() {
6558     if (jj_scan_token(INCR)) return true;
6559     return false;
6560   }
6561 
jj_3R_431()6562   private boolean jj_3R_431() {
6563     Token xsp;
6564     xsp = jj_scanpos;
6565     if (jj_3R_444()) {
6566     jj_scanpos = xsp;
6567     if (jj_3R_445()) {
6568     jj_scanpos = xsp;
6569     if (jj_3R_446()) {
6570     jj_scanpos = xsp;
6571     if (jj_3R_447()) {
6572     jj_scanpos = xsp;
6573     if (jj_3R_448()) return true;
6574     }
6575     }
6576     }
6577     }
6578     return false;
6579   }
6580 
jj_3R_367()6581   private boolean jj_3R_367() {
6582     if (jj_3R_294()) return true;
6583     Token xsp;
6584     xsp = jj_scanpos;
6585     if (jj_3R_431()) jj_scanpos = xsp;
6586     return false;
6587   }
6588 
jj_3R_366()6589   private boolean jj_3R_366() {
6590     if (jj_3R_242()) return true;
6591     return false;
6592   }
6593 
jj_3R_268()6594   private boolean jj_3R_268() {
6595     if (jj_scan_token(HOOK)) return true;
6596     if (jj_3R_100()) return true;
6597     if (jj_scan_token(COLON)) return true;
6598     if (jj_3R_151()) return true;
6599     return false;
6600   }
6601 
jj_3R_151()6602   private boolean jj_3R_151() {
6603     if (jj_3R_200()) return true;
6604     Token xsp;
6605     xsp = jj_scanpos;
6606     if (jj_3R_268()) jj_scanpos = xsp;
6607     return false;
6608   }
6609 
jj_3_39()6610   private boolean jj_3_39() {
6611     if (jj_3R_118()) return true;
6612     return false;
6613   }
6614 
jj_3R_350()6615   private boolean jj_3R_350() {
6616     Token xsp;
6617     xsp = jj_scanpos;
6618     if (jj_3_39()) {
6619     jj_scanpos = xsp;
6620     if (jj_3R_366()) {
6621     jj_scanpos = xsp;
6622     if (jj_3R_367()) return true;
6623     }
6624     }
6625     if (jj_scan_token(SEMICOLON)) return true;
6626     return false;
6627   }
6628 
jj_3R_150()6629   private boolean jj_3R_150() {
6630     if (jj_scan_token(ORASSIGN)) return true;
6631     return false;
6632   }
6633 
jj_3R_149()6634   private boolean jj_3R_149() {
6635     if (jj_scan_token(XORASSIGN)) return true;
6636     return false;
6637   }
6638 
jj_3R_148()6639   private boolean jj_3R_148() {
6640     if (jj_scan_token(ANDASSIGN)) return true;
6641     return false;
6642   }
6643 
jj_3R_147()6644   private boolean jj_3R_147() {
6645     if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true;
6646     return false;
6647   }
6648 
jj_3R_146()6649   private boolean jj_3R_146() {
6650     if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
6651     return false;
6652   }
6653 
jj_3R_145()6654   private boolean jj_3R_145() {
6655     if (jj_scan_token(LSHIFTASSIGN)) return true;
6656     return false;
6657   }
6658 
jj_3R_144()6659   private boolean jj_3R_144() {
6660     if (jj_scan_token(MINUSASSIGN)) return true;
6661     return false;
6662   }
6663 
jj_3R_143()6664   private boolean jj_3R_143() {
6665     if (jj_scan_token(PLUSASSIGN)) return true;
6666     return false;
6667   }
6668 
jj_3R_142()6669   private boolean jj_3R_142() {
6670     if (jj_scan_token(REMASSIGN)) return true;
6671     return false;
6672   }
6673 
jj_3R_141()6674   private boolean jj_3R_141() {
6675     if (jj_scan_token(SLASHASSIGN)) return true;
6676     return false;
6677   }
6678 
jj_3R_140()6679   private boolean jj_3R_140() {
6680     if (jj_scan_token(STARASSIGN)) return true;
6681     return false;
6682   }
6683 
jj_3R_139()6684   private boolean jj_3R_139() {
6685     if (jj_scan_token(ASSIGN)) return true;
6686     return false;
6687   }
6688 
jj_3R_318()6689   private boolean jj_3R_318() {
6690     if (jj_3R_128()) return true;
6691     return false;
6692   }
6693 
jj_3R_99()6694   private boolean jj_3R_99() {
6695     Token xsp;
6696     xsp = jj_scanpos;
6697     if (jj_3R_139()) {
6698     jj_scanpos = xsp;
6699     if (jj_3R_140()) {
6700     jj_scanpos = xsp;
6701     if (jj_3R_141()) {
6702     jj_scanpos = xsp;
6703     if (jj_3R_142()) {
6704     jj_scanpos = xsp;
6705     if (jj_3R_143()) {
6706     jj_scanpos = xsp;
6707     if (jj_3R_144()) {
6708     jj_scanpos = xsp;
6709     if (jj_3R_145()) {
6710     jj_scanpos = xsp;
6711     if (jj_3R_146()) {
6712     jj_scanpos = xsp;
6713     if (jj_3R_147()) {
6714     jj_scanpos = xsp;
6715     if (jj_3R_148()) {
6716     jj_scanpos = xsp;
6717     if (jj_3R_149()) {
6718     jj_scanpos = xsp;
6719     if (jj_3R_150()) return true;
6720     }
6721     }
6722     }
6723     }
6724     }
6725     }
6726     }
6727     }
6728     }
6729     }
6730     }
6731     return false;
6732   }
6733 
jj_3R_84()6734   private boolean jj_3R_84() {
6735     if (jj_3R_123()) return true;
6736     return false;
6737   }
6738 
jj_3R_83()6739   private boolean jj_3R_83() {
6740     if (jj_scan_token(STRICTFP)) return true;
6741     return false;
6742   }
6743 
jj_3R_297()6744   private boolean jj_3R_297() {
6745     if (jj_3R_125()) return true;
6746     return false;
6747   }
6748 
jj_3R_317()6749   private boolean jj_3R_317() {
6750     if (jj_3R_100()) return true;
6751     return false;
6752   }
6753 
jj_3R_82()6754   private boolean jj_3R_82() {
6755     if (jj_scan_token(VOLATILE)) return true;
6756     return false;
6757   }
6758 
jj_3R_81()6759   private boolean jj_3R_81() {
6760     if (jj_scan_token(TRANSIENT)) return true;
6761     return false;
6762   }
6763 
jj_3R_114()6764   private boolean jj_3R_114() {
6765     if (jj_3R_123()) return true;
6766     return false;
6767   }
6768 
jj_3R_80()6769   private boolean jj_3R_80() {
6770     if (jj_scan_token(NATIVE)) return true;
6771     return false;
6772   }
6773 
jj_3R_79()6774   private boolean jj_3R_79() {
6775     if (jj_scan_token(SYNCHRONIZED)) return true;
6776     return false;
6777   }
6778 
jj_3R_270()6779   private boolean jj_3R_270() {
6780     if (jj_scan_token(DOUBLECOLON)) return true;
6781     Token xsp;
6782     xsp = jj_scanpos;
6783     if (jj_3R_297()) jj_scanpos = xsp;
6784     xsp = jj_scanpos;
6785     if (jj_scan_token(78)) {
6786     jj_scanpos = xsp;
6787     if (jj_scan_token(43)) return true;
6788     }
6789     return false;
6790   }
6791 
jj_3R_296()6792   private boolean jj_3R_296() {
6793     Token xsp;
6794     xsp = jj_scanpos;
6795     if (jj_3R_317()) {
6796     jj_scanpos = xsp;
6797     if (jj_3R_318()) return true;
6798     }
6799     return false;
6800   }
6801 
jj_3R_78()6802   private boolean jj_3R_78() {
6803     if (jj_scan_token(ABSTRACT)) return true;
6804     return false;
6805   }
6806 
jj_3R_415()6807   private boolean jj_3R_415() {
6808     if (jj_scan_token(COLON)) return true;
6809     if (jj_3R_100()) return true;
6810     return false;
6811   }
6812 
jj_3R_77()6813   private boolean jj_3R_77() {
6814     if (jj_scan_token(FINAL)) return true;
6815     return false;
6816   }
6817 
jj_3R_76()6818   private boolean jj_3R_76() {
6819     if (jj_scan_token(PRIVATE)) return true;
6820     return false;
6821   }
6822 
jj_3R_75()6823   private boolean jj_3R_75() {
6824     if (jj_scan_token(PROTECTED)) return true;
6825     return false;
6826   }
6827 
jj_3R_74()6828   private boolean jj_3R_74() {
6829     if (jj_scan_token(STATIC)) return true;
6830     return false;
6831   }
6832 
jj_3R_349()6833   private boolean jj_3R_349() {
6834     if (jj_scan_token(SEMICOLON)) return true;
6835     return false;
6836   }
6837 
jj_3_34()6838   private boolean jj_3_34() {
6839     Token xsp;
6840     while (true) {
6841       xsp = jj_scanpos;
6842       if (jj_3R_114()) { jj_scanpos = xsp; break; }
6843     }
6844     if (jj_scan_token(LBRACKET)) return true;
6845     if (jj_scan_token(RBRACKET)) return true;
6846     return false;
6847   }
6848 
jj_3R_73()6849   private boolean jj_3R_73() {
6850     if (jj_scan_token(PUBLIC)) return true;
6851     return false;
6852   }
6853 
jj_3_2()6854   private boolean jj_3_2() {
6855     Token xsp;
6856     xsp = jj_scanpos;
6857     if (jj_3R_73()) {
6858     jj_scanpos = xsp;
6859     if (jj_3R_74()) {
6860     jj_scanpos = xsp;
6861     if (jj_3R_75()) {
6862     jj_scanpos = xsp;
6863     if (jj_3R_76()) {
6864     jj_scanpos = xsp;
6865     if (jj_3R_77()) {
6866     jj_scanpos = xsp;
6867     if (jj_3R_78()) {
6868     jj_scanpos = xsp;
6869     if (jj_3R_79()) {
6870     jj_scanpos = xsp;
6871     if (jj_3R_80()) {
6872     jj_scanpos = xsp;
6873     if (jj_3R_81()) {
6874     jj_scanpos = xsp;
6875     if (jj_3R_82()) {
6876     jj_scanpos = xsp;
6877     if (jj_3R_83()) {
6878     jj_scanpos = xsp;
6879     if (jj_3R_84()) return true;
6880     }
6881     }
6882     }
6883     }
6884     }
6885     }
6886     }
6887     }
6888     }
6889     }
6890     }
6891     return false;
6892   }
6893 
jj_3R_116()6894   private boolean jj_3R_116() {
6895     Token xsp;
6896     while (true) {
6897       xsp = jj_scanpos;
6898       if (jj_3_2()) { jj_scanpos = xsp; break; }
6899     }
6900     return false;
6901   }
6902 
jj_3_18()6903   private boolean jj_3_18() {
6904     if (jj_3R_99()) return true;
6905     if (jj_3R_100()) return true;
6906     return false;
6907   }
6908 
jj_3R_269()6909   private boolean jj_3R_269() {
6910     if (jj_scan_token(ARROW)) return true;
6911     if (jj_3R_296()) return true;
6912     return false;
6913   }
6914 
jj_3R_411()6915   private boolean jj_3R_411() {
6916     if (jj_scan_token(COMMA)) return true;
6917     if (jj_3R_119()) return true;
6918     return false;
6919   }
6920 
jj_3R_239()6921   private boolean jj_3R_239() {
6922     Token xsp;
6923     xsp = jj_scanpos;
6924     if (jj_3_18()) {
6925     jj_scanpos = xsp;
6926     if (jj_3R_269()) {
6927     jj_scanpos = xsp;
6928     if (jj_3R_270()) return true;
6929     }
6930     }
6931     return false;
6932   }
6933 
jj_3_38()6934   private boolean jj_3_38() {
6935     if (jj_3R_117()) return true;
6936     return false;
6937   }
6938 
jj_3R_117()6939   private boolean jj_3R_117() {
6940     if (jj_3R_116()) return true;
6941     if (jj_3R_87()) return true;
6942     if (jj_3R_172()) return true;
6943     Token xsp;
6944     while (true) {
6945       xsp = jj_scanpos;
6946       if (jj_3R_173()) { jj_scanpos = xsp; break; }
6947     }
6948     return false;
6949   }
6950 
jj_3R_100()6951   private boolean jj_3R_100() {
6952     if (jj_3R_151()) return true;
6953     Token xsp;
6954     xsp = jj_scanpos;
6955     if (jj_3R_239()) jj_scanpos = xsp;
6956     return false;
6957   }
6958 
jj_3_37()6959   private boolean jj_3_37() {
6960     if (jj_3R_116()) return true;
6961     Token xsp;
6962     xsp = jj_scanpos;
6963     if (jj_scan_token(20)) {
6964     jj_scanpos = xsp;
6965     if (jj_scan_token(40)) return true;
6966     }
6967     return false;
6968   }
6969 
jj_3R_283()6970   private boolean jj_3R_283() {
6971     if (jj_3R_306()) return true;
6972     return false;
6973   }
6974 
jj_3R_282()6975   private boolean jj_3R_282() {
6976     if (jj_3R_117()) return true;
6977     if (jj_scan_token(SEMICOLON)) return true;
6978     return false;
6979   }
6980 
jj_3R_281()6981   private boolean jj_3R_281() {
6982     if (jj_3R_116()) return true;
6983     if (jj_3R_298()) return true;
6984     return false;
6985   }
6986 
jj_3R_246()6987   private boolean jj_3R_246() {
6988     Token xsp;
6989     xsp = jj_scanpos;
6990     if (jj_3R_281()) {
6991     jj_scanpos = xsp;
6992     if (jj_3R_282()) {
6993     jj_scanpos = xsp;
6994     if (jj_3R_283()) return true;
6995     }
6996     }
6997     return false;
6998   }
6999 
jj_3R_122()7000   private boolean jj_3R_122() {
7001     if (jj_3R_123()) return true;
7002     return false;
7003   }
7004 
jj_3R_72()7005   private boolean jj_3R_72() {
7006     Token xsp;
7007     while (true) {
7008       xsp = jj_scanpos;
7009       if (jj_3R_122()) { jj_scanpos = xsp; break; }
7010     }
7011     if (jj_scan_token(PACKAGE)) return true;
7012     if (jj_3R_119()) return true;
7013     if (jj_scan_token(SEMICOLON)) return true;
7014     return false;
7015   }
7016 
jj_3_1()7017   private boolean jj_3_1() {
7018     if (jj_3R_72()) return true;
7019     return false;
7020   }
7021 
jj_3R_401()7022   private boolean jj_3R_401() {
7023     if (jj_3R_119()) return true;
7024     Token xsp;
7025     while (true) {
7026       xsp = jj_scanpos;
7027       if (jj_3R_411()) { jj_scanpos = xsp; break; }
7028     }
7029     return false;
7030   }
7031 
jj_3R_128()7032   private boolean jj_3R_128() {
7033     if (jj_scan_token(LBRACE)) return true;
7034     if (jj_3R_184()) return true;
7035     if (jj_scan_token(RBRACE)) return true;
7036     return false;
7037   }
7038 
jj_3R_227()7039   private boolean jj_3R_227() {
7040     if (jj_scan_token(IDENTIFIER)) return true;
7041     return false;
7042   }
7043 
jj_3R_115()7044   private boolean jj_3R_115() {
7045     if (jj_scan_token(IDENTIFIER)) return true;
7046     if (jj_scan_token(COLON)) return true;
7047     if (jj_3R_306()) return true;
7048     return false;
7049   }
7050 
jj_3R_348()7051   private boolean jj_3R_348() {
7052     if (jj_scan_token(ASSERT)) return true;
7053     if (jj_3R_100()) return true;
7054     Token xsp;
7055     xsp = jj_scanpos;
7056     if (jj_3R_415()) jj_scanpos = xsp;
7057     if (jj_scan_token(SEMICOLON)) return true;
7058     return false;
7059   }
7060 
jj_3_17()7061   private boolean jj_3_17() {
7062     if (jj_scan_token(DOT)) return true;
7063     if (jj_scan_token(IDENTIFIER)) return true;
7064     return false;
7065   }
7066 
jj_3R_119()7067   private boolean jj_3R_119() {
7068     if (jj_scan_token(IDENTIFIER)) return true;
7069     Token xsp;
7070     while (true) {
7071       xsp = jj_scanpos;
7072       if (jj_3_17()) { jj_scanpos = xsp; break; }
7073     }
7074     return false;
7075   }
7076 
jj_3R_339()7077   private boolean jj_3R_339() {
7078     if (jj_3R_361()) return true;
7079     return false;
7080   }
7081 
jj_3R_338()7082   private boolean jj_3R_338() {
7083     if (jj_3R_360()) return true;
7084     return false;
7085   }
7086 
jj_3R_337()7087   private boolean jj_3R_337() {
7088     if (jj_3R_359()) return true;
7089     return false;
7090   }
7091 
jj_3R_170()7092   private boolean jj_3R_170() {
7093     if (jj_3R_87()) return true;
7094     return false;
7095   }
7096 
jj_3R_336()7097   private boolean jj_3R_336() {
7098     if (jj_3R_358()) return true;
7099     return false;
7100   }
7101 
jj_3R_169()7102   private boolean jj_3R_169() {
7103     if (jj_scan_token(VOID)) return true;
7104     return false;
7105   }
7106 
jj_3R_335()7107   private boolean jj_3R_335() {
7108     if (jj_3R_357()) return true;
7109     return false;
7110   }
7111 
jj_3R_334()7112   private boolean jj_3R_334() {
7113     if (jj_3R_356()) return true;
7114     return false;
7115   }
7116 
jj_3R_333()7117   private boolean jj_3R_333() {
7118     if (jj_3R_355()) return true;
7119     return false;
7120   }
7121 
jj_3R_332()7122   private boolean jj_3R_332() {
7123     if (jj_3R_354()) return true;
7124     return false;
7125   }
7126 
jj_3R_331()7127   private boolean jj_3R_331() {
7128     if (jj_3R_353()) return true;
7129     return false;
7130   }
7131 
jj_3R_111()7132   private boolean jj_3R_111() {
7133     Token xsp;
7134     xsp = jj_scanpos;
7135     if (jj_3R_169()) {
7136     jj_scanpos = xsp;
7137     if (jj_3R_170()) return true;
7138     }
7139     return false;
7140   }
7141 
jj_3R_330()7142   private boolean jj_3R_330() {
7143     if (jj_3R_352()) return true;
7144     return false;
7145   }
7146 
jj_3R_329()7147   private boolean jj_3R_329() {
7148     if (jj_3R_351()) return true;
7149     return false;
7150   }
7151 
jj_3R_328()7152   private boolean jj_3R_328() {
7153     if (jj_3R_350()) return true;
7154     return false;
7155   }
7156 
jj_3R_327()7157   private boolean jj_3R_327() {
7158     if (jj_3R_349()) return true;
7159     return false;
7160   }
7161 
jj_3R_326()7162   private boolean jj_3R_326() {
7163     if (jj_3R_128()) return true;
7164     return false;
7165   }
7166 
jj_3R_163()7167   private boolean jj_3R_163() {
7168     if (jj_scan_token(DOUBLE)) return true;
7169     return false;
7170   }
7171 
jj_3R_325()7172   private boolean jj_3R_325() {
7173     if (jj_3R_348()) return true;
7174     return false;
7175   }
7176 
jj_3R_162()7177   private boolean jj_3R_162() {
7178     if (jj_scan_token(FLOAT)) return true;
7179     return false;
7180   }
7181 
jj_3R_161()7182   private boolean jj_3R_161() {
7183     if (jj_scan_token(LONG)) return true;
7184     return false;
7185   }
7186 
jj_3_36()7187   private boolean jj_3_36() {
7188     if (jj_3R_115()) return true;
7189     return false;
7190   }
7191 
jj_3R_160()7192   private boolean jj_3R_160() {
7193     if (jj_scan_token(INT)) return true;
7194     return false;
7195   }
7196 
jj_3R_363()7197   private boolean jj_3R_363() {
7198     if (jj_3R_123()) return true;
7199     return false;
7200   }
7201 
jj_3R_159()7202   private boolean jj_3R_159() {
7203     if (jj_scan_token(SHORT)) return true;
7204     return false;
7205   }
7206 
jj_3R_362()7207   private boolean jj_3R_362() {
7208     if (jj_3R_123()) return true;
7209     return false;
7210   }
7211 
jj_3R_158()7212   private boolean jj_3R_158() {
7213     if (jj_scan_token(BYTE)) return true;
7214     return false;
7215   }
7216 
jj_3R_157()7217   private boolean jj_3R_157() {
7218     if (jj_scan_token(CHAR)) return true;
7219     return false;
7220   }
7221 
jj_3R_156()7222   private boolean jj_3R_156() {
7223     if (jj_scan_token(BOOLEAN)) return true;
7224     return false;
7225   }
7226 
jj_3R_306()7227   private boolean jj_3R_306() {
7228     Token xsp;
7229     xsp = jj_scanpos;
7230     if (jj_3_36()) {
7231     jj_scanpos = xsp;
7232     if (jj_3R_325()) {
7233     jj_scanpos = xsp;
7234     if (jj_3R_326()) {
7235     jj_scanpos = xsp;
7236     if (jj_3R_327()) {
7237     jj_scanpos = xsp;
7238     if (jj_3R_328()) {
7239     jj_scanpos = xsp;
7240     if (jj_3R_329()) {
7241     jj_scanpos = xsp;
7242     if (jj_3R_330()) {
7243     jj_scanpos = xsp;
7244     if (jj_3R_331()) {
7245     jj_scanpos = xsp;
7246     if (jj_3R_332()) {
7247     jj_scanpos = xsp;
7248     if (jj_3R_333()) {
7249     jj_scanpos = xsp;
7250     if (jj_3R_334()) {
7251     jj_scanpos = xsp;
7252     if (jj_3R_335()) {
7253     jj_scanpos = xsp;
7254     if (jj_3R_336()) {
7255     jj_scanpos = xsp;
7256     if (jj_3R_337()) {
7257     jj_scanpos = xsp;
7258     if (jj_3R_338()) {
7259     jj_scanpos = xsp;
7260     if (jj_3R_339()) return true;
7261     }
7262     }
7263     }
7264     }
7265     }
7266     }
7267     }
7268     }
7269     }
7270     }
7271     }
7272     }
7273     }
7274     }
7275     }
7276     return false;
7277   }
7278 
jj_3R_344()7279   private boolean jj_3R_344() {
7280     if (jj_scan_token(SUPER)) return true;
7281     Token xsp;
7282     while (true) {
7283       xsp = jj_scanpos;
7284       if (jj_3R_363()) { jj_scanpos = xsp; break; }
7285     }
7286     if (jj_3R_94()) return true;
7287     return false;
7288   }
7289 
jj_3R_107()7290   private boolean jj_3R_107() {
7291     Token xsp;
7292     xsp = jj_scanpos;
7293     if (jj_3R_156()) {
7294     jj_scanpos = xsp;
7295     if (jj_3R_157()) {
7296     jj_scanpos = xsp;
7297     if (jj_3R_158()) {
7298     jj_scanpos = xsp;
7299     if (jj_3R_159()) {
7300     jj_scanpos = xsp;
7301     if (jj_3R_160()) {
7302     jj_scanpos = xsp;
7303     if (jj_3R_161()) {
7304     jj_scanpos = xsp;
7305     if (jj_3R_162()) {
7306     jj_scanpos = xsp;
7307     if (jj_3R_163()) return true;
7308     }
7309     }
7310     }
7311     }
7312     }
7313     }
7314     }
7315     return false;
7316   }
7317 
jj_3R_342()7318   private boolean jj_3R_342() {
7319     if (jj_scan_token(LBRACKET)) return true;
7320     if (jj_scan_token(RBRACKET)) return true;
7321     return false;
7322   }
7323 
jj_3R_343()7324   private boolean jj_3R_343() {
7325     if (jj_scan_token(EXTENDS)) return true;
7326     Token xsp;
7327     while (true) {
7328       xsp = jj_scanpos;
7329       if (jj_3R_362()) { jj_scanpos = xsp; break; }
7330     }
7331     if (jj_3R_94()) return true;
7332     return false;
7333   }
7334 
jj_3R_314()7335   private boolean jj_3R_314() {
7336     Token xsp;
7337     xsp = jj_scanpos;
7338     if (jj_3R_343()) {
7339     jj_scanpos = xsp;
7340     if (jj_3R_344()) return true;
7341     }
7342     return false;
7343   }
7344 
jj_3R_312()7345   private boolean jj_3R_312() {
7346     Token xsp;
7347     if (jj_3R_342()) return true;
7348     while (true) {
7349       xsp = jj_scanpos;
7350       if (jj_3R_342()) { jj_scanpos = xsp; break; }
7351     }
7352     if (jj_3R_185()) return true;
7353     return false;
7354   }
7355 
jj_3_33()7356   private boolean jj_3_33() {
7357     if (jj_scan_token(LBRACKET)) return true;
7358     if (jj_3R_100()) return true;
7359     if (jj_scan_token(RBRACKET)) return true;
7360     return false;
7361   }
7362 
jj_3_32()7363   private boolean jj_3_32() {
7364     if (jj_3R_113()) return true;
7365     return false;
7366   }
7367 
jj_3_35()7368   private boolean jj_3_35() {
7369     Token xsp;
7370     if (jj_3_33()) return true;
7371     while (true) {
7372       xsp = jj_scanpos;
7373       if (jj_3_33()) { jj_scanpos = xsp; break; }
7374     }
7375     while (true) {
7376       xsp = jj_scanpos;
7377       if (jj_3_34()) { jj_scanpos = xsp; break; }
7378     }
7379     return false;
7380   }
7381 
jj_3R_229()7382   private boolean jj_3R_229() {
7383     if (jj_scan_token(COMMA)) return true;
7384     if (jj_3R_199()) return true;
7385     return false;
7386   }
7387 
jj_3R_311()7388   private boolean jj_3R_311() {
7389     if (jj_3R_123()) return true;
7390     return false;
7391   }
7392 
jj_3R_289()7393   private boolean jj_3R_289() {
7394     Token xsp;
7395     while (true) {
7396       xsp = jj_scanpos;
7397       if (jj_3R_311()) { jj_scanpos = xsp; break; }
7398     }
7399     xsp = jj_scanpos;
7400     if (jj_3_35()) {
7401     jj_scanpos = xsp;
7402     if (jj_3R_312()) return true;
7403     }
7404     return false;
7405   }
7406 
jj_3R_313()7407   private boolean jj_3R_313() {
7408     if (jj_3R_123()) return true;
7409     return false;
7410   }
7411 
jj_3R_263()7412   private boolean jj_3R_263() {
7413     if (jj_scan_token(HOOK)) return true;
7414     Token xsp;
7415     xsp = jj_scanpos;
7416     if (jj_3R_314()) jj_scanpos = xsp;
7417     return false;
7418   }
7419 
jj_3R_292()7420   private boolean jj_3R_292() {
7421     if (jj_3R_187()) return true;
7422     Token xsp;
7423     xsp = jj_scanpos;
7424     if (jj_3_32()) jj_scanpos = xsp;
7425     return false;
7426   }
7427 
jj_3R_232()7428   private boolean jj_3R_232() {
7429     if (jj_3R_263()) return true;
7430     return false;
7431   }
7432 
jj_3R_231()7433   private boolean jj_3R_231() {
7434     if (jj_3R_94()) return true;
7435     return false;
7436   }
7437 
jj_3R_460()7438   private boolean jj_3R_460() {
7439     if (jj_3R_462()) return true;
7440     return false;
7441   }
7442 
jj_3R_230()7443   private boolean jj_3R_230() {
7444     if (jj_3R_123()) return true;
7445     return false;
7446   }
7447 
jj_3R_199()7448   private boolean jj_3R_199() {
7449     Token xsp;
7450     while (true) {
7451       xsp = jj_scanpos;
7452       if (jj_3R_230()) { jj_scanpos = xsp; break; }
7453     }
7454     xsp = jj_scanpos;
7455     if (jj_3R_231()) {
7456     jj_scanpos = xsp;
7457     if (jj_3R_232()) return true;
7458     }
7459     return false;
7460   }
7461 
jj_3R_291()7462   private boolean jj_3R_291() {
7463     if (jj_3R_289()) return true;
7464     return false;
7465   }
7466 
jj_3R_96()7467   private boolean jj_3R_96() {
7468     if (jj_3R_123()) return true;
7469     return false;
7470   }
7471 
jj_3R_98()7472   private boolean jj_3R_98() {
7473     if (jj_3R_123()) return true;
7474     return false;
7475   }
7476 
jj_3R_290()7477   private boolean jj_3R_290() {
7478     if (jj_3R_97()) return true;
7479     Token xsp;
7480     while (true) {
7481       xsp = jj_scanpos;
7482       if (jj_3R_313()) { jj_scanpos = xsp; break; }
7483     }
7484     return false;
7485   }
7486 
jj_3R_138()7487   private boolean jj_3R_138() {
7488     if (jj_scan_token(132)) return true;
7489     return false;
7490   }
7491 
jj_3R_262()7492   private boolean jj_3R_262() {
7493     Token xsp;
7494     xsp = jj_scanpos;
7495     if (jj_3R_290()) jj_scanpos = xsp;
7496     if (jj_3R_198()) return true;
7497     xsp = jj_scanpos;
7498     if (jj_3R_291()) {
7499     jj_scanpos = xsp;
7500     if (jj_3R_292()) return true;
7501     }
7502     return false;
7503   }
7504 
jj_3R_95()7505   private boolean jj_3R_95() {
7506     if (jj_3R_123()) return true;
7507     return false;
7508   }
7509 
jj_3R_284()7510   private boolean jj_3R_284() {
7511     if (jj_scan_token(COMMA)) return true;
7512     if (jj_3R_100()) return true;
7513     return false;
7514   }
7515 
jj_3_13()7516   private boolean jj_3_13() {
7517     Token xsp;
7518     while (true) {
7519       xsp = jj_scanpos;
7520       if (jj_3R_96()) { jj_scanpos = xsp; break; }
7521     }
7522     if (jj_scan_token(LBRACKET)) return true;
7523     if (jj_scan_token(RBRACKET)) return true;
7524     return false;
7525   }
7526 
jj_3R_137()7527   private boolean jj_3R_137() {
7528     if (jj_scan_token(LT)) return true;
7529     if (jj_3R_199()) return true;
7530     Token xsp;
7531     while (true) {
7532       xsp = jj_scanpos;
7533       if (jj_3R_229()) { jj_scanpos = xsp; break; }
7534     }
7535     if (jj_scan_token(GT)) return true;
7536     return false;
7537   }
7538 
jj_3R_97()7539   private boolean jj_3R_97() {
7540     Token xsp;
7541     xsp = jj_scanpos;
7542     if (jj_3R_137()) {
7543     jj_scanpos = xsp;
7544     if (jj_3R_138()) return true;
7545     }
7546     return false;
7547   }
7548 
jj_3_16()7549   private boolean jj_3_16() {
7550     if (jj_3R_97()) return true;
7551     return false;
7552   }
7553 
jj_3_15()7554   private boolean jj_3_15() {
7555     if (jj_scan_token(DOT)) return true;
7556     Token xsp;
7557     while (true) {
7558       xsp = jj_scanpos;
7559       if (jj_3R_98()) { jj_scanpos = xsp; break; }
7560     }
7561     if (jj_scan_token(IDENTIFIER)) return true;
7562     xsp = jj_scanpos;
7563     if (jj_3_16()) jj_scanpos = xsp;
7564     return false;
7565   }
7566 
jj_3R_261()7567   private boolean jj_3R_261() {
7568     if (jj_3R_107()) return true;
7569     if (jj_3R_289()) return true;
7570     return false;
7571   }
7572 
jj_3_12()7573   private boolean jj_3_12() {
7574     Token xsp;
7575     while (true) {
7576       xsp = jj_scanpos;
7577       if (jj_3R_95()) { jj_scanpos = xsp; break; }
7578     }
7579     if (jj_scan_token(LBRACKET)) return true;
7580     if (jj_scan_token(RBRACKET)) return true;
7581     return false;
7582   }
7583 
jj_3R_386()7584   private boolean jj_3R_386() {
7585     if (jj_scan_token(THROWS)) return true;
7586     if (jj_3R_401()) return true;
7587     return false;
7588   }
7589 
jj_3_14()7590   private boolean jj_3_14() {
7591     if (jj_3R_97()) return true;
7592     return false;
7593   }
7594 
jj_3R_260()7595   private boolean jj_3R_260() {
7596     if (jj_3R_123()) return true;
7597     return false;
7598   }
7599 
jj_3R_198()7600   private boolean jj_3R_198() {
7601     if (jj_scan_token(IDENTIFIER)) return true;
7602     Token xsp;
7603     xsp = jj_scanpos;
7604     if (jj_3_14()) jj_scanpos = xsp;
7605     while (true) {
7606       xsp = jj_scanpos;
7607       if (jj_3_15()) { jj_scanpos = xsp; break; }
7608     }
7609     return false;
7610   }
7611 
jj_3R_225()7612   private boolean jj_3R_225() {
7613     if (jj_scan_token(NEW)) return true;
7614     Token xsp;
7615     while (true) {
7616       xsp = jj_scanpos;
7617       if (jj_3R_260()) { jj_scanpos = xsp; break; }
7618     }
7619     xsp = jj_scanpos;
7620     if (jj_3R_261()) {
7621     jj_scanpos = xsp;
7622     if (jj_3R_262()) return true;
7623     }
7624     return false;
7625   }
7626 
jj_3R_462()7627   private boolean jj_3R_462() {
7628     if (jj_scan_token(_DEFAULT)) return true;
7629     if (jj_3R_121()) return true;
7630     return false;
7631   }
7632 
jj_3R_136()7633   private boolean jj_3R_136() {
7634     if (jj_3R_198()) return true;
7635     Token xsp;
7636     while (true) {
7637       xsp = jj_scanpos;
7638       if (jj_3_13()) { jj_scanpos = xsp; break; }
7639     }
7640     return false;
7641   }
7642 
jj_3R_135()7643   private boolean jj_3R_135() {
7644     if (jj_3R_107()) return true;
7645     Token xsp;
7646     if (jj_3_12()) return true;
7647     while (true) {
7648       xsp = jj_scanpos;
7649       if (jj_3_12()) { jj_scanpos = xsp; break; }
7650     }
7651     return false;
7652   }
7653 
jj_3R_94()7654   private boolean jj_3R_94() {
7655     Token xsp;
7656     xsp = jj_scanpos;
7657     if (jj_3R_135()) {
7658     jj_scanpos = xsp;
7659     if (jj_3R_136()) return true;
7660     }
7661     return false;
7662   }
7663 
jj_3R_247()7664   private boolean jj_3R_247() {
7665     if (jj_3R_100()) return true;
7666     Token xsp;
7667     while (true) {
7668       xsp = jj_scanpos;
7669       if (jj_3R_284()) { jj_scanpos = xsp; break; }
7670     }
7671     return false;
7672   }
7673 
jj_3R_455()7674   private boolean jj_3R_455() {
7675     if (jj_3R_87()) return true;
7676     if (jj_scan_token(IDENTIFIER)) return true;
7677     if (jj_scan_token(LPAREN)) return true;
7678     if (jj_scan_token(RPAREN)) return true;
7679     Token xsp;
7680     xsp = jj_scanpos;
7681     if (jj_3R_460()) jj_scanpos = xsp;
7682     if (jj_scan_token(SEMICOLON)) return true;
7683     return false;
7684   }
7685 
jj_3R_219()7686   private boolean jj_3R_219() {
7687     if (jj_3R_247()) return true;
7688     return false;
7689   }
7690 
jj_3_47()7691   private boolean jj_3_47() {
7692     if (jj_3R_87()) return true;
7693     if (jj_scan_token(IDENTIFIER)) return true;
7694     if (jj_scan_token(LPAREN)) return true;
7695     return false;
7696   }
7697 
jj_3R_443()7698   private boolean jj_3R_443() {
7699     if (jj_3R_302()) return true;
7700     return false;
7701   }
7702 
jj_3R_442()7703   private boolean jj_3R_442() {
7704     if (jj_3R_300()) return true;
7705     return false;
7706   }
7707 
jj_3R_187()7708   private boolean jj_3R_187() {
7709     if (jj_scan_token(LPAREN)) return true;
7710     Token xsp;
7711     xsp = jj_scanpos;
7712     if (jj_3R_219()) jj_scanpos = xsp;
7713     if (jj_scan_token(RPAREN)) return true;
7714     return false;
7715   }
7716 
jj_3R_126()7717   private boolean jj_3R_126() {
7718     if (jj_3R_107()) return true;
7719     return false;
7720   }
7721 
jj_3R_441()7722   private boolean jj_3R_441() {
7723     if (jj_3R_299()) return true;
7724     return false;
7725   }
7726 
jj_3_11()7727   private boolean jj_3_11() {
7728     if (jj_3R_94()) return true;
7729     return false;
7730   }
7731 
jj_3R_440()7732   private boolean jj_3R_440() {
7733     if (jj_3R_298()) return true;
7734     return false;
7735   }
7736 
jj_3R_87()7737   private boolean jj_3R_87() {
7738     Token xsp;
7739     xsp = jj_scanpos;
7740     if (jj_3_11()) {
7741     jj_scanpos = xsp;
7742     if (jj_3R_126()) return true;
7743     }
7744     return false;
7745   }
7746 
jj_3R_439()7747   private boolean jj_3R_439() {
7748     if (jj_3R_455()) return true;
7749     return false;
7750   }
7751 
jj_3R_286()7752   private boolean jj_3R_286() {
7753     if (jj_scan_token(NULL)) return true;
7754     return false;
7755   }
7756 
jj_3R_308()7757   private boolean jj_3R_308() {
7758     if (jj_scan_token(FALSE)) return true;
7759     return false;
7760   }
7761 
jj_3R_307()7762   private boolean jj_3R_307() {
7763     if (jj_scan_token(TRUE)) return true;
7764     return false;
7765   }
7766 
jj_3_46()7767   private boolean jj_3_46() {
7768     if (jj_scan_token(COMMA)) return true;
7769     if (jj_3R_121()) return true;
7770     return false;
7771   }
7772 
jj_3R_426()7773   private boolean jj_3R_426() {
7774     if (jj_scan_token(SEMICOLON)) return true;
7775     return false;
7776   }
7777 
jj_3R_427()7778   private boolean jj_3R_427() {
7779     if (jj_3R_116()) return true;
7780     Token xsp;
7781     xsp = jj_scanpos;
7782     if (jj_3R_439()) {
7783     jj_scanpos = xsp;
7784     if (jj_3R_440()) {
7785     jj_scanpos = xsp;
7786     if (jj_3R_441()) {
7787     jj_scanpos = xsp;
7788     if (jj_3R_442()) {
7789     jj_scanpos = xsp;
7790     if (jj_3R_443()) return true;
7791     }
7792     }
7793     }
7794     }
7795     return false;
7796   }
7797 
jj_3R_127()7798   private boolean jj_3R_127() {
7799     if (jj_scan_token(STATIC)) return true;
7800     return false;
7801   }
7802 
jj_3R_89()7803   private boolean jj_3R_89() {
7804     Token xsp;
7805     xsp = jj_scanpos;
7806     if (jj_3R_127()) jj_scanpos = xsp;
7807     if (jj_3R_128()) return true;
7808     return false;
7809   }
7810 
jj_3R_285()7811   private boolean jj_3R_285() {
7812     Token xsp;
7813     xsp = jj_scanpos;
7814     if (jj_3R_307()) {
7815     jj_scanpos = xsp;
7816     if (jj_3R_308()) return true;
7817     }
7818     return false;
7819   }
7820 
jj_3R_409()7821   private boolean jj_3R_409() {
7822     Token xsp;
7823     xsp = jj_scanpos;
7824     if (jj_3R_426()) {
7825     jj_scanpos = xsp;
7826     if (jj_3R_427()) return true;
7827     }
7828     return false;
7829   }
7830 
jj_3R_254()7831   private boolean jj_3R_254() {
7832     if (jj_3R_286()) return true;
7833     return false;
7834   }
7835 
jj_3R_218()7836   private boolean jj_3R_218() {
7837     if (jj_3R_246()) return true;
7838     return false;
7839   }
7840 
jj_3R_253()7841   private boolean jj_3R_253() {
7842     if (jj_3R_285()) return true;
7843     return false;
7844   }
7845 
jj_3R_184()7846   private boolean jj_3R_184() {
7847     Token xsp;
7848     while (true) {
7849       xsp = jj_scanpos;
7850       if (jj_3R_218()) { jj_scanpos = xsp; break; }
7851     }
7852     return false;
7853   }
7854 
jj_3R_399()7855   private boolean jj_3R_399() {
7856     if (jj_3R_409()) return true;
7857     return false;
7858   }
7859 
jj_3_9()7860   private boolean jj_3_9() {
7861     if (jj_3R_92()) return true;
7862     if (jj_scan_token(DOT)) return true;
7863     return false;
7864   }
7865 
jj_3R_252()7866   private boolean jj_3R_252() {
7867     if (jj_scan_token(STRING_LITERAL)) return true;
7868     return false;
7869   }
7870 
jj_3R_251()7871   private boolean jj_3R_251() {
7872     if (jj_scan_token(CHARACTER_LITERAL)) return true;
7873     return false;
7874   }
7875 
jj_3R_384()7876   private boolean jj_3R_384() {
7877     if (jj_scan_token(LBRACE)) return true;
7878     Token xsp;
7879     while (true) {
7880       xsp = jj_scanpos;
7881       if (jj_3R_399()) { jj_scanpos = xsp; break; }
7882     }
7883     if (jj_scan_token(RBRACE)) return true;
7884     return false;
7885   }
7886 
jj_3R_93()7887   private boolean jj_3R_93() {
7888     if (jj_3R_97()) return true;
7889     return false;
7890   }
7891 
jj_3R_189()7892   private boolean jj_3R_189() {
7893     if (jj_3R_97()) return true;
7894     return false;
7895   }
7896 
jj_3_10()7897   private boolean jj_3_10() {
7898     Token xsp;
7899     xsp = jj_scanpos;
7900     if (jj_3R_93()) jj_scanpos = xsp;
7901     if (jj_scan_token(THIS)) return true;
7902     if (jj_scan_token(LPAREN)) return true;
7903     return false;
7904   }
7905 
jj_3R_250()7906   private boolean jj_3R_250() {
7907     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
7908     return false;
7909   }
7910 
jj_3R_188()7911   private boolean jj_3R_188() {
7912     if (jj_3R_92()) return true;
7913     if (jj_scan_token(DOT)) return true;
7914     return false;
7915   }
7916 
jj_3R_249()7917   private boolean jj_3R_249() {
7918     if (jj_scan_token(LONG_LITERAL)) return true;
7919     return false;
7920   }
7921 
jj_3R_132()7922   private boolean jj_3R_132() {
7923     Token xsp;
7924     xsp = jj_scanpos;
7925     if (jj_3R_188()) jj_scanpos = xsp;
7926     xsp = jj_scanpos;
7927     if (jj_3R_189()) jj_scanpos = xsp;
7928     if (jj_scan_token(SUPER)) return true;
7929     if (jj_3R_187()) return true;
7930     if (jj_scan_token(SEMICOLON)) return true;
7931     return false;
7932   }
7933 
jj_3R_186()7934   private boolean jj_3R_186() {
7935     if (jj_3R_97()) return true;
7936     return false;
7937   }
7938 
jj_3R_248()7939   private boolean jj_3R_248() {
7940     if (jj_scan_token(INTEGER_LITERAL)) return true;
7941     return false;
7942   }
7943 
jj_3R_131()7944   private boolean jj_3R_131() {
7945     Token xsp;
7946     xsp = jj_scanpos;
7947     if (jj_3R_186()) jj_scanpos = xsp;
7948     if (jj_scan_token(THIS)) return true;
7949     if (jj_3R_187()) return true;
7950     if (jj_scan_token(SEMICOLON)) return true;
7951     return false;
7952   }
7953 
jj_3R_300()7954   private boolean jj_3R_300() {
7955     if (jj_scan_token(AT)) return true;
7956     if (jj_scan_token(INTERFACE)) return true;
7957     if (jj_3R_119()) return true;
7958     if (jj_3R_384()) return true;
7959     return false;
7960   }
7961 
jj_3R_112()7962   private boolean jj_3R_112() {
7963     if (jj_3R_97()) return true;
7964     return false;
7965   }
7966 
jj_3R_220()7967   private boolean jj_3R_220() {
7968     Token xsp;
7969     xsp = jj_scanpos;
7970     if (jj_3R_248()) {
7971     jj_scanpos = xsp;
7972     if (jj_3R_249()) {
7973     jj_scanpos = xsp;
7974     if (jj_3R_250()) {
7975     jj_scanpos = xsp;
7976     if (jj_3R_251()) {
7977     jj_scanpos = xsp;
7978     if (jj_3R_252()) {
7979     jj_scanpos = xsp;
7980     if (jj_3R_253()) {
7981     jj_scanpos = xsp;
7982     if (jj_3R_254()) return true;
7983     }
7984     }
7985     }
7986     }
7987     }
7988     }
7989     return false;
7990   }
7991 
jj_3R_91()7992   private boolean jj_3R_91() {
7993     Token xsp;
7994     xsp = jj_scanpos;
7995     if (jj_3R_131()) {
7996     jj_scanpos = xsp;
7997     if (jj_3R_132()) return true;
7998     }
7999     return false;
8000   }
8001 
jj_3R_166()8002   private boolean jj_3R_166() {
8003     if (jj_scan_token(LBRACKET)) return true;
8004     if (jj_3R_100()) return true;
8005     if (jj_scan_token(RBRACKET)) return true;
8006     return false;
8007   }
8008 
jj_3_31()8009   private boolean jj_3_31() {
8010     Token xsp;
8011     xsp = jj_scanpos;
8012     if (jj_3R_112()) jj_scanpos = xsp;
8013     if (jj_scan_token(IDENTIFIER)) return true;
8014     return false;
8015   }
8016 
jj_3R_324()8017   private boolean jj_3R_324() {
8018     if (jj_scan_token(COMMA)) return true;
8019     if (jj_3R_323()) return true;
8020     return false;
8021   }
8022 
jj_3R_347()8023   private boolean jj_3R_347() {
8024     if (jj_3R_121()) return true;
8025     Token xsp;
8026     while (true) {
8027       xsp = jj_scanpos;
8028       if (jj_3_46()) { jj_scanpos = xsp; break; }
8029     }
8030     return false;
8031   }
8032 
jj_3R_238()8033   private boolean jj_3R_238() {
8034     if (jj_3R_187()) return true;
8035     return false;
8036   }
8037 
jj_3R_237()8038   private boolean jj_3R_237() {
8039     if (jj_3R_97()) return true;
8040     return false;
8041   }
8042 
jj_3R_278()8043   private boolean jj_3R_278() {
8044     if (jj_3R_304()) return true;
8045     return false;
8046   }
8047 
jj_3_8()8048   private boolean jj_3_8() {
8049     if (jj_3R_91()) return true;
8050     return false;
8051   }
8052 
jj_3R_204()8053   private boolean jj_3R_204() {
8054     Token xsp;
8055     xsp = jj_scanpos;
8056     if (jj_3R_237()) jj_scanpos = xsp;
8057     if (jj_3R_227()) return true;
8058     xsp = jj_scanpos;
8059     if (jj_3R_238()) jj_scanpos = xsp;
8060     return false;
8061   }
8062 
jj_3R_212()8063   private boolean jj_3R_212() {
8064     if (jj_scan_token(LBRACE)) return true;
8065     Token xsp;
8066     xsp = jj_scanpos;
8067     if (jj_3R_347()) jj_scanpos = xsp;
8068     xsp = jj_scanpos;
8069     if (jj_scan_token(88)) jj_scanpos = xsp;
8070     if (jj_scan_token(RBRACE)) return true;
8071     return false;
8072   }
8073 
jj_3_7()8074   private boolean jj_3_7() {
8075     if (jj_scan_token(COMMA)) return true;
8076     if (jj_3R_90()) return true;
8077     return false;
8078   }
8079 
jj_3R_203()8080   private boolean jj_3R_203() {
8081     if (jj_3R_225()) return true;
8082     return false;
8083   }
8084 
jj_3R_167()8085   private boolean jj_3R_167() {
8086     if (jj_scan_token(ELLIPSIS)) return true;
8087     return false;
8088   }
8089 
jj_3R_202()8090   private boolean jj_3R_202() {
8091     if (jj_scan_token(THIS)) return true;
8092     return false;
8093   }
8094 
jj_3R_177()8095   private boolean jj_3R_177() {
8096     if (jj_3R_151()) return true;
8097     return false;
8098   }
8099 
jj_3R_287()8100   private boolean jj_3R_287() {
8101     if (jj_3R_309()) return true;
8102     return false;
8103   }
8104 
jj_3R_176()8105   private boolean jj_3R_176() {
8106     if (jj_3R_212()) return true;
8107     return false;
8108   }
8109 
jj_3R_175()8110   private boolean jj_3R_175() {
8111     if (jj_3R_123()) return true;
8112     return false;
8113   }
8114 
jj_3R_387()8115   private boolean jj_3R_387() {
8116     if (jj_3R_91()) return true;
8117     return false;
8118   }
8119 
jj_3R_340()8120   private boolean jj_3R_340() {
8121     if (jj_scan_token(COMMA)) return true;
8122     if (jj_3R_110()) return true;
8123     return false;
8124   }
8125 
jj_3R_165()8126   private boolean jj_3R_165() {
8127     if (jj_scan_token(DOT)) return true;
8128     Token xsp;
8129     xsp = jj_scanpos;
8130     if (jj_3R_202()) {
8131     jj_scanpos = xsp;
8132     if (jj_3R_203()) {
8133     jj_scanpos = xsp;
8134     if (jj_3R_204()) return true;
8135     }
8136     }
8137     return false;
8138   }
8139 
jj_3R_320()8140   private boolean jj_3R_320() {
8141     if (jj_3R_125()) return true;
8142     return false;
8143   }
8144 
jj_3R_301()8145   private boolean jj_3R_301() {
8146     Token xsp;
8147     xsp = jj_scanpos;
8148     if (jj_3R_320()) jj_scanpos = xsp;
8149     if (jj_3R_227()) return true;
8150     if (jj_3R_385()) return true;
8151     xsp = jj_scanpos;
8152     if (jj_3R_386()) jj_scanpos = xsp;
8153     if (jj_scan_token(LBRACE)) return true;
8154     xsp = jj_scanpos;
8155     if (jj_3R_387()) jj_scanpos = xsp;
8156     if (jj_3R_184()) return true;
8157     if (jj_scan_token(RBRACE)) return true;
8158     return false;
8159   }
8160 
jj_3R_121()8161   private boolean jj_3R_121() {
8162     Token xsp;
8163     xsp = jj_scanpos;
8164     if (jj_3R_175()) {
8165     jj_scanpos = xsp;
8166     if (jj_3R_176()) {
8167     jj_scanpos = xsp;
8168     if (jj_3R_177()) return true;
8169     }
8170     }
8171     return false;
8172   }
8173 
jj_3R_109()8174   private boolean jj_3R_109() {
8175     Token xsp;
8176     xsp = jj_scanpos;
8177     if (jj_3R_165()) {
8178     jj_scanpos = xsp;
8179     if (jj_3R_166()) return true;
8180     }
8181     return false;
8182   }
8183 
jj_3R_410()8184   private boolean jj_3R_410() {
8185     if (jj_scan_token(COMMA)) return true;
8186     if (jj_3R_110()) return true;
8187     return false;
8188   }
8189 
jj_3R_323()8190   private boolean jj_3R_323() {
8191     if (jj_scan_token(IDENTIFIER)) return true;
8192     if (jj_scan_token(ASSIGN)) return true;
8193     if (jj_3R_121()) return true;
8194     return false;
8195   }
8196 
jj_3R_164()8197   private boolean jj_3R_164() {
8198     if (jj_scan_token(DOT)) return true;
8199     if (jj_scan_token(SUPER)) return true;
8200     return false;
8201   }
8202 
jj_3_30()8203   private boolean jj_3_30() {
8204     if (jj_3R_109()) return true;
8205     return false;
8206   }
8207 
jj_3R_226()8208   private boolean jj_3R_226() {
8209     if (jj_3R_125()) return true;
8210     return false;
8211   }
8212 
jj_3R_304()8213   private boolean jj_3R_304() {
8214     if (jj_3R_323()) return true;
8215     Token xsp;
8216     while (true) {
8217       xsp = jj_scanpos;
8218       if (jj_3R_324()) { jj_scanpos = xsp; break; }
8219     }
8220     return false;
8221   }
8222 
jj_3R_108()8223   private boolean jj_3R_108() {
8224     Token xsp;
8225     xsp = jj_scanpos;
8226     if (jj_3_30()) {
8227     jj_scanpos = xsp;
8228     if (jj_3R_164()) return true;
8229     }
8230     return false;
8231   }
8232 
jj_3R_228()8233   private boolean jj_3R_228() {
8234     if (jj_3R_187()) return true;
8235     return false;
8236   }
8237 
jj_3R_110()8238   private boolean jj_3R_110() {
8239     if (jj_3R_116()) return true;
8240     if (jj_3R_87()) return true;
8241     Token xsp;
8242     xsp = jj_scanpos;
8243     if (jj_3R_167()) jj_scanpos = xsp;
8244     if (jj_3R_168()) return true;
8245     return false;
8246   }
8247 
jj_3R_197()8248   private boolean jj_3R_197() {
8249     if (jj_3R_227()) return true;
8250     Token xsp;
8251     xsp = jj_scanpos;
8252     if (jj_3R_228()) jj_scanpos = xsp;
8253     return false;
8254   }
8255 
jj_3_29()8256   private boolean jj_3_29() {
8257     if (jj_3R_111()) return true;
8258     if (jj_scan_token(DOUBLECOLON)) return true;
8259     return false;
8260   }
8261 
jj_3R_214()8262   private boolean jj_3R_214() {
8263     if (jj_scan_token(AT)) return true;
8264     if (jj_3R_119()) return true;
8265     if (jj_scan_token(LPAREN)) return true;
8266     if (jj_3R_121()) return true;
8267     if (jj_scan_token(RPAREN)) return true;
8268     return false;
8269   }
8270 
jj_3R_389()8271   private boolean jj_3R_389() {
8272     if (jj_scan_token(LBRACKET)) return true;
8273     if (jj_scan_token(RBRACKET)) return true;
8274     return false;
8275   }
8276 
jj_3_28()8277   private boolean jj_3_28() {
8278     if (jj_3R_111()) return true;
8279     if (jj_scan_token(DOT)) return true;
8280     if (jj_scan_token(CLASS)) return true;
8281     return false;
8282   }
8283 
jj_3R_341()8284   private boolean jj_3R_341() {
8285     if (jj_scan_token(COMMA)) return true;
8286     if (jj_3R_168()) return true;
8287     return false;
8288   }
8289 
jj_3R_120()8290   private boolean jj_3R_120() {
8291     if (jj_scan_token(IDENTIFIER)) return true;
8292     if (jj_scan_token(ASSIGN)) return true;
8293     return false;
8294   }
8295 
jj_3R_205()8296   private boolean jj_3R_205() {
8297     if (jj_scan_token(LBRACKET)) return true;
8298     if (jj_scan_token(RBRACKET)) return true;
8299     return false;
8300   }
8301 
jj_3R_288()8302   private boolean jj_3R_288() {
8303     if (jj_3R_310()) return true;
8304     return false;
8305   }
8306 
jj_3R_310()8307   private boolean jj_3R_310() {
8308     if (jj_scan_token(COMMA)) return true;
8309     if (jj_3R_168()) return true;
8310     Token xsp;
8311     while (true) {
8312       xsp = jj_scanpos;
8313       if (jj_3R_341()) { jj_scanpos = xsp; break; }
8314     }
8315     return false;
8316   }
8317 
jj_3R_196()8318   private boolean jj_3R_196() {
8319     if (jj_3R_111()) return true;
8320     if (jj_scan_token(DOUBLECOLON)) return true;
8321     Token xsp;
8322     xsp = jj_scanpos;
8323     if (jj_3R_226()) jj_scanpos = xsp;
8324     xsp = jj_scanpos;
8325     if (jj_scan_token(78)) {
8326     jj_scanpos = xsp;
8327     if (jj_scan_token(43)) return true;
8328     }
8329     return false;
8330   }
8331 
jj_3R_215()8332   private boolean jj_3R_215() {
8333     if (jj_scan_token(AT)) return true;
8334     if (jj_3R_119()) return true;
8335     return false;
8336   }
8337 
jj_3R_322()8338   private boolean jj_3R_322() {
8339     if (jj_3R_90()) return true;
8340     Token xsp;
8341     while (true) {
8342       xsp = jj_scanpos;
8343       if (jj_3_7()) { jj_scanpos = xsp; break; }
8344     }
8345     return false;
8346   }
8347 
jj_3R_195()8348   private boolean jj_3R_195() {
8349     if (jj_3R_111()) return true;
8350     if (jj_scan_token(DOT)) return true;
8351     if (jj_scan_token(CLASS)) return true;
8352     return false;
8353   }
8354 
jj_3R_194()8355   private boolean jj_3R_194() {
8356     if (jj_3R_225()) return true;
8357     return false;
8358   }
8359 
jj_3_27()8360   private boolean jj_3_27() {
8361     if (jj_3R_110()) return true;
8362     return false;
8363   }
8364 
jj_3_45()8365   private boolean jj_3_45() {
8366     if (jj_scan_token(AT)) return true;
8367     if (jj_3R_119()) return true;
8368     if (jj_scan_token(LPAREN)) return true;
8369     return false;
8370   }
8371 
jj_3R_309()8372   private boolean jj_3R_309() {
8373     if (jj_scan_token(COMMA)) return true;
8374     if (jj_3R_110()) return true;
8375     Token xsp;
8376     while (true) {
8377       xsp = jj_scanpos;
8378       if (jj_3R_340()) { jj_scanpos = xsp; break; }
8379     }
8380     return false;
8381   }
8382 
jj_3_43()8383   private boolean jj_3_43() {
8384     if (jj_scan_token(SEMICOLON)) return true;
8385     if (jj_3R_117()) return true;
8386     return false;
8387   }
8388 
jj_3_44()8389   private boolean jj_3_44() {
8390     if (jj_scan_token(AT)) return true;
8391     if (jj_3R_119()) return true;
8392     if (jj_scan_token(LPAREN)) return true;
8393     Token xsp;
8394     xsp = jj_scanpos;
8395     if (jj_3R_120()) {
8396     jj_scanpos = xsp;
8397     if (jj_scan_token(82)) return true;
8398     }
8399     return false;
8400   }
8401 
jj_3R_213()8402   private boolean jj_3R_213() {
8403     if (jj_scan_token(AT)) return true;
8404     if (jj_3R_119()) return true;
8405     if (jj_scan_token(LPAREN)) return true;
8406     Token xsp;
8407     xsp = jj_scanpos;
8408     if (jj_3R_278()) jj_scanpos = xsp;
8409     if (jj_scan_token(RPAREN)) return true;
8410     return false;
8411   }
8412 
jj_3R_400()8413   private boolean jj_3R_400() {
8414     if (jj_3R_110()) return true;
8415     Token xsp;
8416     while (true) {
8417       xsp = jj_scanpos;
8418       if (jj_3R_410()) { jj_scanpos = xsp; break; }
8419     }
8420     return false;
8421   }
8422 
jj_3R_180()8423   private boolean jj_3R_180() {
8424     if (jj_3R_215()) return true;
8425     return false;
8426   }
8427 
jj_3R_259()8428   private boolean jj_3R_259() {
8429     if (jj_3R_100()) return true;
8430     Token xsp;
8431     xsp = jj_scanpos;
8432     if (jj_3R_288()) jj_scanpos = xsp;
8433     return false;
8434   }
8435 
jj_3R_258()8436   private boolean jj_3R_258() {
8437     if (jj_3R_110()) return true;
8438     Token xsp;
8439     xsp = jj_scanpos;
8440     if (jj_3R_287()) jj_scanpos = xsp;
8441     return false;
8442   }
8443 
jj_3R_179()8444   private boolean jj_3R_179() {
8445     if (jj_3R_214()) return true;
8446     return false;
8447   }
8448 
jj_3R_224()8449   private boolean jj_3R_224() {
8450     Token xsp;
8451     xsp = jj_scanpos;
8452     if (jj_3R_258()) {
8453     jj_scanpos = xsp;
8454     if (jj_3R_259()) return true;
8455     }
8456     return false;
8457   }
8458 
jj_3R_385()8459   private boolean jj_3R_385() {
8460     if (jj_scan_token(LPAREN)) return true;
8461     Token xsp;
8462     xsp = jj_scanpos;
8463     if (jj_3R_400()) jj_scanpos = xsp;
8464     if (jj_scan_token(RPAREN)) return true;
8465     return false;
8466   }
8467 
jj_3R_178()8468   private boolean jj_3R_178() {
8469     if (jj_3R_213()) return true;
8470     return false;
8471   }
8472 
jj_3R_257()8473   private boolean jj_3R_257() {
8474     if (jj_3R_125()) return true;
8475     return false;
8476   }
8477 
jj_3R_193()8478   private boolean jj_3R_193() {
8479     if (jj_scan_token(LPAREN)) return true;
8480     Token xsp;
8481     xsp = jj_scanpos;
8482     if (jj_3R_224()) jj_scanpos = xsp;
8483     if (jj_scan_token(RPAREN)) return true;
8484     return false;
8485   }
8486 
jj_3R_222()8487   private boolean jj_3R_222() {
8488     if (jj_scan_token(DOUBLECOLON)) return true;
8489     Token xsp;
8490     xsp = jj_scanpos;
8491     if (jj_3R_257()) jj_scanpos = xsp;
8492     xsp = jj_scanpos;
8493     if (jj_scan_token(78)) {
8494     jj_scanpos = xsp;
8495     if (jj_scan_token(43)) return true;
8496     }
8497     return false;
8498   }
8499 
jj_3R_123()8500   private boolean jj_3R_123() {
8501     Token xsp;
8502     xsp = jj_scanpos;
8503     if (jj_3R_178()) {
8504     jj_scanpos = xsp;
8505     if (jj_3R_179()) {
8506     jj_scanpos = xsp;
8507     if (jj_3R_180()) return true;
8508     }
8509     }
8510     return false;
8511   }
8512 
jj_3R_223()8513   private boolean jj_3R_223() {
8514     if (jj_3R_187()) return true;
8515     return false;
8516   }
8517 
jj_3R_152()8518   private boolean jj_3R_152() {
8519     return false;
8520   }
8521 
jj_3R_391()8522   private boolean jj_3R_391() {
8523     if (jj_3R_128()) return true;
8524     return false;
8525   }
8526 
jj_3R_390()8527   private boolean jj_3R_390() {
8528     if (jj_scan_token(THROWS)) return true;
8529     if (jj_3R_401()) return true;
8530     return false;
8531   }
8532 
jj_3R_321()8533   private boolean jj_3R_321() {
8534     if (jj_3R_125()) return true;
8535     return false;
8536   }
8537 
jj_3R_303()8538   private boolean jj_3R_303() {
8539     Token xsp;
8540     xsp = jj_scanpos;
8541     if (jj_3R_321()) jj_scanpos = xsp;
8542     if (jj_3R_111()) return true;
8543     if (jj_3R_119()) return true;
8544     if (jj_3R_385()) return true;
8545     while (true) {
8546       xsp = jj_scanpos;
8547       if (jj_3R_389()) { jj_scanpos = xsp; break; }
8548     }
8549     xsp = jj_scanpos;
8550     if (jj_3R_390()) jj_scanpos = xsp;
8551     xsp = jj_scanpos;
8552     if (jj_3R_391()) {
8553     jj_scanpos = xsp;
8554     if (jj_scan_token(87)) return true;
8555     }
8556     return false;
8557   }
8558 
jj_3R_153()8559   private boolean jj_3R_153() {
8560     return false;
8561   }
8562 
jj_3R_102()8563   private boolean jj_3R_102() {
8564     jj_lookingAhead = true;
8565     jj_semLA = getToken(1).kind == GT &&
8566                 ((GTToken)getToken(1)).realKind == RSIGNEDSHIFT;
8567     jj_lookingAhead = false;
8568     if (!jj_semLA || jj_3R_152()) return true;
8569     if (jj_scan_token(GT)) return true;
8570     if (jj_scan_token(GT)) return true;
8571     return false;
8572   }
8573 
jj_3R_256()8574   private boolean jj_3R_256() {
8575     if (jj_3R_187()) return true;
8576     return false;
8577   }
8578 
jj_3R_221()8579   private boolean jj_3R_221() {
8580     if (jj_scan_token(DOT)) return true;
8581     Token xsp;
8582     xsp = jj_scanpos;
8583     if (jj_3R_255()) jj_scanpos = xsp;
8584     if (jj_3R_227()) return true;
8585     xsp = jj_scanpos;
8586     if (jj_3R_256()) jj_scanpos = xsp;
8587     return false;
8588   }
8589 
jj_3R_255()8590   private boolean jj_3R_255() {
8591     if (jj_3R_97()) return true;
8592     return false;
8593   }
8594 
jj_3_26()8595   private boolean jj_3_26() {
8596     if (jj_3R_109()) return true;
8597     return false;
8598   }
8599 
jj_3R_192()8600   private boolean jj_3R_192() {
8601     if (jj_scan_token(SUPER)) return true;
8602     Token xsp;
8603     xsp = jj_scanpos;
8604     if (jj_3R_221()) {
8605     jj_scanpos = xsp;
8606     if (jj_3R_222()) {
8607     jj_scanpos = xsp;
8608     if (jj_3R_223()) return true;
8609     }
8610     }
8611     return false;
8612   }
8613 
jj_3R_103()8614   private boolean jj_3R_103() {
8615     jj_lookingAhead = true;
8616     jj_semLA = getToken(1).kind == GT &&
8617                 ((GTToken)getToken(1)).realKind == RUNSIGNEDSHIFT;
8618     jj_lookingAhead = false;
8619     if (!jj_semLA || jj_3R_153()) return true;
8620     if (jj_scan_token(GT)) return true;
8621     if (jj_scan_token(GT)) return true;
8622     if (jj_scan_token(GT)) return true;
8623     return false;
8624   }
8625 
jj_3R_191()8626   private boolean jj_3R_191() {
8627     if (jj_scan_token(THIS)) return true;
8628     return false;
8629   }
8630 
jj_3R_185()8631   private boolean jj_3R_185() {
8632     if (jj_scan_token(LBRACE)) return true;
8633     Token xsp;
8634     xsp = jj_scanpos;
8635     if (jj_3R_322()) jj_scanpos = xsp;
8636     xsp = jj_scanpos;
8637     if (jj_scan_token(88)) jj_scanpos = xsp;
8638     if (jj_scan_token(RBRACE)) return true;
8639     return false;
8640   }
8641 
jj_3R_190()8642   private boolean jj_3R_190() {
8643     if (jj_3R_220()) return true;
8644     return false;
8645   }
8646 
jj_3R_134()8647   private boolean jj_3R_134() {
8648     if (jj_3R_109()) return true;
8649     return false;
8650   }
8651 
jj_3R_130()8652   private boolean jj_3R_130() {
8653     if (jj_3R_100()) return true;
8654     return false;
8655   }
8656 
jj_3R_129()8657   private boolean jj_3R_129() {
8658     if (jj_3R_185()) return true;
8659     return false;
8660   }
8661 
jj_3R_207()8662   private boolean jj_3R_207() {
8663     if (jj_scan_token(ASSIGN)) return true;
8664     if (jj_3R_90()) return true;
8665     return false;
8666   }
8667 
jj_3R_453()8668   private boolean jj_3R_453() {
8669     if (jj_3R_117()) return true;
8670     Token xsp;
8671     while (true) {
8672       xsp = jj_scanpos;
8673       if (jj_3_43()) { jj_scanpos = xsp; break; }
8674     }
8675     return false;
8676   }
8677 
jj_3R_133()8678   private boolean jj_3R_133() {
8679     Token xsp;
8680     xsp = jj_scanpos;
8681     if (jj_3R_190()) {
8682     jj_scanpos = xsp;
8683     if (jj_3R_191()) {
8684     jj_scanpos = xsp;
8685     if (jj_3R_192()) {
8686     jj_scanpos = xsp;
8687     if (jj_3R_193()) {
8688     jj_scanpos = xsp;
8689     if (jj_3R_194()) {
8690     jj_scanpos = xsp;
8691     if (jj_3R_195()) {
8692     jj_scanpos = xsp;
8693     if (jj_3R_196()) {
8694     jj_scanpos = xsp;
8695     if (jj_3R_197()) return true;
8696     }
8697     }
8698     }
8699     }
8700     }
8701     }
8702     }
8703     return false;
8704   }
8705 
jj_3_25()8706   private boolean jj_3_25() {
8707     if (jj_3R_108()) return true;
8708     return false;
8709   }
8710 
jj_3R_90()8711   private boolean jj_3R_90() {
8712     Token xsp;
8713     xsp = jj_scanpos;
8714     if (jj_3R_129()) {
8715     jj_scanpos = xsp;
8716     if (jj_3R_130()) return true;
8717     }
8718     return false;
8719   }
8720 
jj_3R_454()8721   private boolean jj_3R_454() {
8722     if (jj_scan_token(BIT_OR)) return true;
8723     if (jj_3R_87()) return true;
8724     return false;
8725   }
8726 
jj_3R_438()8727   private boolean jj_3R_438() {
8728     if (jj_scan_token(FINALLY)) return true;
8729     if (jj_3R_128()) return true;
8730     return false;
8731   }
8732 
jj_3R_425()8733   private boolean jj_3R_425() {
8734     if (jj_scan_token(FINALLY)) return true;
8735     if (jj_3R_128()) return true;
8736     return false;
8737   }
8738 
jj_3_42()8739   private boolean jj_3_42() {
8740     if (jj_scan_token(SEMICOLON)) return true;
8741     return false;
8742   }
8743 
jj_3R_436()8744   private boolean jj_3R_436() {
8745     if (jj_scan_token(LPAREN)) return true;
8746     if (jj_3R_453()) return true;
8747     Token xsp;
8748     xsp = jj_scanpos;
8749     if (jj_3_42()) jj_scanpos = xsp;
8750     if (jj_scan_token(RPAREN)) return true;
8751     return false;
8752   }
8753 
jj_3R_437()8754   private boolean jj_3R_437() {
8755     if (jj_scan_token(CATCH)) return true;
8756     if (jj_scan_token(LPAREN)) return true;
8757     if (jj_3R_116()) return true;
8758     if (jj_3R_87()) return true;
8759     Token xsp;
8760     while (true) {
8761       xsp = jj_scanpos;
8762       if (jj_3R_454()) { jj_scanpos = xsp; break; }
8763     }
8764     if (jj_3R_168()) return true;
8765     if (jj_scan_token(RPAREN)) return true;
8766     if (jj_3R_128()) return true;
8767     return false;
8768   }
8769 
jj_3R_168()8770   private boolean jj_3R_168() {
8771     if (jj_scan_token(IDENTIFIER)) return true;
8772     Token xsp;
8773     while (true) {
8774       xsp = jj_scanpos;
8775       if (jj_3R_205()) { jj_scanpos = xsp; break; }
8776     }
8777     return false;
8778   }
8779 
jj_3R_92()8780   private boolean jj_3R_92() {
8781     if (jj_3R_133()) return true;
8782     Token xsp;
8783     while (true) {
8784       xsp = jj_scanpos;
8785       if (jj_3R_134()) { jj_scanpos = xsp; break; }
8786     }
8787     return false;
8788   }
8789 
8790   /** Generated Token Manager. */
8791   public ASTParserTokenManager token_source;
8792   JavaCharStream jj_input_stream;
8793   /** Current token. */
8794   public Token token;
8795   /** Next token. */
8796   public Token jj_nt;
8797   private int jj_ntk;
8798   private Token jj_scanpos, jj_lastpos;
8799   private int jj_la;
8800   /** Whether we are looking ahead. */
8801   private boolean jj_lookingAhead = false;
8802   private boolean jj_semLA;
8803   private int jj_gen;
8804   final private int[] jj_la1 = new int[175];
8805   static private int[] jj_la1_0;
8806   static private int[] jj_la1_1;
8807   static private int[] jj_la1_2;
8808   static private int[] jj_la1_3;
8809   static private int[] jj_la1_4;
8810   static {
jj_la1_init_0()8811       jj_la1_init_0();
jj_la1_init_1()8812       jj_la1_init_1();
jj_la1_init_2()8813       jj_la1_init_2();
jj_la1_init_3()8814       jj_la1_init_3();
jj_la1_init_4()8815       jj_la1_init_4();
8816    }
jj_la1_init_0()8817    private static void jj_la1_init_0() {
8818       jj_la1_0 = new int[] {0x0,0x48101000,0x1,0x0,0x0,0x0,0x40001000,0x8100000,0x48101000,0x100000,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4a995000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x4a995000,0x800000,0x8100000,0x2094000,0x4a995000,0x0,0x0,0x0,0x22094000,0x22094000,0x0,0x0,0x0,0x0,0x0,0x0,0x42095000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x22094000,0x6359f000,0x0,0x2094000,0x0,0x0,0x2094000,0x0,0x0,0x0,0x0,0x2094000,0x0,0x0,0x10000000,0x10000000,0x2094000,0x2094000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x22094000,0x0,0x0,0x22094000,0x0,0x0,0x2094000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x22094000,0x62095000,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x20000000,0x22094000,0x0,0x0,0x0,0x0,0x0,0x2094000,0x0,0x0,0x0,0x0,0x2349e000,0x0,0x2349e000,0x0,0x22094000,0x0,0x0,0x0,0x0,0x22094000,0x820000,0x820000,0x4000000,0x62095000,0x22094000,0x22094000,0x62095000,0x22094000,0x0,0x0,0x0,0x22094000,0x0,0x40000,0x0,0x80000000,0x0,0x0,0x0,0x22094000,0x22094000,0x0,0x4a195000,0xa194000,0x4a195000,0x800000,};
8819    }
jj_la1_init_1()8820    private static void jj_la1_init_1() {
8821       jj_la1_1 = new int[] {0x20,0x8899c500,0x0,0x0,0x80000,0x0,0x8899c400,0x100,0x8899c500,0x100,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0xc89dc781,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc89dc781,0x0,0x100,0x40040281,0xc89dc781,0x0,0x0,0x0,0x51241a81,0x51241a81,0x0,0x0,0x0,0x4000000,0x0,0x0,0x889dc681,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x51241a81,0xfbffdf8b,0x80000,0x40281,0x0,0x0,0x40281,0x0,0x0,0x0,0x0,0x40281,0x0,0x0,0x200000,0x200000,0x40281,0x40040281,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x51241a81,0x0,0x0,0x51241a81,0x0,0x0,0x40281,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x51241a81,0xd9bdde81,0x0,0x800,0x0,0x11201800,0x0,0x0,0x0,0x0,0x1000800,0x0,0x10001000,0x10000000,0x51241a81,0x0,0x0,0x0,0x0,0x0,0x40281,0x0,0x0,0x0,0x0,0x73e61a8b,0x0,0x73e61a8b,0x0,0x51241a81,0x0,0x800,0x0,0x0,0x51241a81,0x0,0x0,0x0,0xd9bdde81,0x51241a81,0x51241a81,0xd9bdde81,0x51241a81,0x0,0x0,0x0,0x51241a81,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x51241a81,0x51241a81,0x0,0x889dc781,0x40381,0x889dc781,0x0,};
8822    }
jj_la1_init_2()8823    private static void jj_la1_init_2() {
8824       jj_la1_2 = new int[] {0x0,0x4800000,0x0,0x4000000,0x0,0x2000000,0x4000000,0x4000000,0x4800000,0x0,0x10000000,0x0,0x0,0x4000000,0x1000000,0x4000000,0x1000000,0x0,0x4004000,0x1000000,0x14884000,0x800000,0x4000000,0x20000,0x80000,0x4000000,0x1000000,0x4000000,0x0,0x4000000,0x0,0x4000000,0x14884000,0x0,0x4000000,0x10004000,0x14804000,0x1000000,0x8000000,0x200000,0x600a7086,0x600a7086,0x1000000,0x10000000,0x200000,0x0,0x880000,0x1000000,0x4004000,0x1000000,0x1000000,0x0,0x10000000,0x0,0x10000000,0x10000000,0x10027086,0x48a7087,0x0,0x0,0x4000000,0x4000000,0x4000,0x4000000,0x1000000,0x10000000,0x4000000,0x80004000,0x4000000,0x4000000,0x0,0x0,0x0,0x4000,0x4000000,0x1000000,0x4000000,0x1000000,0x10000000,0x4000,0x0,0x8000000,0x8000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x60027086,0x60000000,0x60000000,0x27086,0x0,0x4000000,0x4000,0x10000000,0x20000,0x10000000,0x4000,0x2020000,0x1000000,0x1000000,0x60027086,0x64027086,0x10000000,0x4000,0x20000,0x23086,0x4000,0x2000000,0x10000000,0x20000,0x0,0x2200000,0x3086,0x0,0x60027086,0x1000000,0x4000000,0x4000000,0x10000000,0x4220000,0x10004000,0x4000000,0x4000000,0x200000,0x200000,0x8a7087,0x0,0x8a7087,0x1000000,0x600a7086,0x10000000,0x4000,0x8000000,0x8000000,0x27086,0x0,0x0,0x0,0x64027086,0x60027086,0x60027086,0x64827086,0x60027086,0x1000000,0x4000,0x4000,0x60027086,0x20000,0x0,0x0,0x0,0x4000000,0x4000,0x1000000,0x640a7086,0x640a7086,0x1000000,0x4804000,0x4004000,0x4804000,0x0,};
8825    }
jj_la1_init_3()8826    private static void jj_la1_init_3() {
8827       jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780,0x780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0000000,0xdffc0000,0x1ffc0000,0x0,0x20,0x40,0x4000,0x8000,0x2000,0x12,0x12,0x0,0xc,0xc,0x20000,0x600,0x600,0x11800,0x11800,0x600,0x780,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x780,0x780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x1,0x180,0x0,0x780,0x0,0x0,0xdffc0180,0xdffc0180,0x100,0x0,0x0,0x0,0x780,0x780,0x780,0x780,0x780,0x0,0x0,0x0,0x780,0x0,0x0,0x4000,0x0,0x0,0x0,0x0,0x780,0x780,0x0,0x0,0x0,0x0,0x0,};
8828    }
jj_la1_init_4()8829    private static void jj_la1_init_4() {
8830       jj_la1_4 = new int[] {0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x10,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
8831    }
8832   final private JJCalls[] jj_2_rtns = new JJCalls[47];
8833   private boolean jj_rescan = false;
8834   private int jj_gc = 0;
8835 
8836   /** Constructor with InputStream. */
ASTParser(java.io.InputStream stream)8837   public ASTParser(java.io.InputStream stream) {
8838      this(stream, null);
8839   }
8840   /** Constructor with InputStream and supplied encoding */
ASTParser(java.io.InputStream stream, String encoding)8841   public ASTParser(java.io.InputStream stream, String encoding) {
8842     try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
8843     token_source = new ASTParserTokenManager(jj_input_stream);
8844     token = new Token();
8845     jj_ntk = -1;
8846     jj_gen = 0;
8847     for (int i = 0; i < 175; i++) jj_la1[i] = -1;
8848     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
8849   }
8850 
8851   /** Reinitialise. */
ReInit(java.io.InputStream stream)8852   public void ReInit(java.io.InputStream stream) {
8853      ReInit(stream, null);
8854   }
8855   /** Reinitialise. */
ReInit(java.io.InputStream stream, String encoding)8856   public void ReInit(java.io.InputStream stream, String encoding) {
8857     try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
8858     token_source.ReInit(jj_input_stream);
8859     token = new Token();
8860     jj_ntk = -1;
8861     jj_gen = 0;
8862     for (int i = 0; i < 175; i++) jj_la1[i] = -1;
8863     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
8864   }
8865 
8866   /** Constructor. */
ASTParser(java.io.Reader stream)8867   public ASTParser(java.io.Reader stream) {
8868     jj_input_stream = new JavaCharStream(stream, 1, 1);
8869     token_source = new ASTParserTokenManager(jj_input_stream);
8870     token = new Token();
8871     jj_ntk = -1;
8872     jj_gen = 0;
8873     for (int i = 0; i < 175; i++) jj_la1[i] = -1;
8874     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
8875   }
8876 
8877   /** Reinitialise. */
ReInit(java.io.Reader stream)8878   public void ReInit(java.io.Reader stream) {
8879     jj_input_stream.ReInit(stream, 1, 1);
8880     token_source.ReInit(jj_input_stream);
8881     token = new Token();
8882     jj_ntk = -1;
8883     jj_gen = 0;
8884     for (int i = 0; i < 175; i++) jj_la1[i] = -1;
8885     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
8886   }
8887 
8888   /** Constructor with generated Token Manager. */
ASTParser(ASTParserTokenManager tm)8889   public ASTParser(ASTParserTokenManager tm) {
8890     token_source = tm;
8891     token = new Token();
8892     jj_ntk = -1;
8893     jj_gen = 0;
8894     for (int i = 0; i < 175; i++) jj_la1[i] = -1;
8895     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
8896   }
8897 
8898   /** Reinitialise. */
ReInit(ASTParserTokenManager tm)8899   public void ReInit(ASTParserTokenManager tm) {
8900     token_source = tm;
8901     token = new Token();
8902     jj_ntk = -1;
8903     jj_gen = 0;
8904     for (int i = 0; i < 175; i++) jj_la1[i] = -1;
8905     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
8906   }
8907 
jj_consume_token(int kind)8908   private Token jj_consume_token(int kind) {
8909     Token oldToken;
8910     if ((oldToken = token).next != null) token = token.next;
8911     else token = token.next = token_source.getNextToken();
8912     jj_ntk = -1;
8913     if (token.kind == kind) {
8914       jj_gen++;
8915       if (++jj_gc > 100) {
8916         jj_gc = 0;
8917         for (int i = 0; i < jj_2_rtns.length; i++) {
8918           JJCalls c = jj_2_rtns[i];
8919           while (c != null) {
8920             if (c.gen < jj_gen) c.first = null;
8921             c = c.next;
8922           }
8923         }
8924       }
8925       return token;
8926     }
8927     token = oldToken;
8928     jj_kind = kind;
8929     throw generateParseException();
8930   }
8931 
8932   static private final class LookaheadSuccess extends java.lang.Error { }
8933   final private LookaheadSuccess jj_ls = new LookaheadSuccess();
jj_scan_token(int kind)8934   private boolean jj_scan_token(int kind) {
8935     if (jj_scanpos == jj_lastpos) {
8936       jj_la--;
8937       if (jj_scanpos.next == null) {
8938         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
8939       } else {
8940         jj_lastpos = jj_scanpos = jj_scanpos.next;
8941       }
8942     } else {
8943       jj_scanpos = jj_scanpos.next;
8944     }
8945     if (jj_rescan) {
8946       int i = 0; Token tok = token;
8947       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
8948       if (tok != null) jj_add_error_token(kind, i);
8949     }
8950     if (jj_scanpos.kind != kind) return true;
8951     if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
8952     return false;
8953   }
8954 
8955 
8956 /** Get the next Token. */
getNextToken()8957   final public Token getNextToken() {
8958     if (token.next != null) token = token.next;
8959     else token = token.next = token_source.getNextToken();
8960     jj_ntk = -1;
8961     jj_gen++;
8962     return token;
8963   }
8964 
8965 /** Get the specific Token. */
getToken(int index)8966   final public Token getToken(int index) {
8967     Token t = jj_lookingAhead ? jj_scanpos : token;
8968     for (int i = 0; i < index; i++) {
8969       if (t.next != null) t = t.next;
8970       else t = t.next = token_source.getNextToken();
8971     }
8972     return t;
8973   }
8974 
jj_ntk()8975   private int jj_ntk() {
8976     if ((jj_nt=token.next) == null)
8977       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
8978     else
8979       return (jj_ntk = jj_nt.kind);
8980   }
8981 
8982   private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
8983   private int[] jj_expentry;
8984   private int jj_kind = -1;
8985   private int[] jj_lasttokens = new int[100];
8986   private int jj_endpos;
8987 
jj_add_error_token(int kind, int pos)8988   private void jj_add_error_token(int kind, int pos) {
8989     if (pos >= 100) return;
8990     if (pos == jj_endpos + 1) {
8991       jj_lasttokens[jj_endpos++] = kind;
8992     } else if (jj_endpos != 0) {
8993       jj_expentry = new int[jj_endpos];
8994       for (int i = 0; i < jj_endpos; i++) {
8995         jj_expentry[i] = jj_lasttokens[i];
8996       }
8997       jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
8998         int[] oldentry = (int[])(it.next());
8999         if (oldentry.length == jj_expentry.length) {
9000           for (int i = 0; i < jj_expentry.length; i++) {
9001             if (oldentry[i] != jj_expentry[i]) {
9002               continue jj_entries_loop;
9003             }
9004           }
9005           jj_expentries.add(jj_expentry);
9006           break jj_entries_loop;
9007         }
9008       }
9009       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
9010     }
9011   }
9012 
9013   /** Generate ParseException. */
generateParseException()9014   public ParseException generateParseException() {
9015     jj_expentries.clear();
9016     boolean[] la1tokens = new boolean[133];
9017     if (jj_kind >= 0) {
9018       la1tokens[jj_kind] = true;
9019       jj_kind = -1;
9020     }
9021     for (int i = 0; i < 175; i++) {
9022       if (jj_la1[i] == jj_gen) {
9023         for (int j = 0; j < 32; j++) {
9024           if ((jj_la1_0[i] & (1<<j)) != 0) {
9025             la1tokens[j] = true;
9026           }
9027           if ((jj_la1_1[i] & (1<<j)) != 0) {
9028             la1tokens[32+j] = true;
9029           }
9030           if ((jj_la1_2[i] & (1<<j)) != 0) {
9031             la1tokens[64+j] = true;
9032           }
9033           if ((jj_la1_3[i] & (1<<j)) != 0) {
9034             la1tokens[96+j] = true;
9035           }
9036           if ((jj_la1_4[i] & (1<<j)) != 0) {
9037             la1tokens[128+j] = true;
9038           }
9039         }
9040       }
9041     }
9042     for (int i = 0; i < 133; i++) {
9043       if (la1tokens[i]) {
9044         jj_expentry = new int[1];
9045         jj_expentry[0] = i;
9046         jj_expentries.add(jj_expentry);
9047       }
9048     }
9049     jj_endpos = 0;
9050     jj_rescan_token();
9051     jj_add_error_token(0, 0);
9052     int[][] exptokseq = new int[jj_expentries.size()][];
9053     for (int i = 0; i < jj_expentries.size(); i++) {
9054       exptokseq[i] = jj_expentries.get(i);
9055     }
9056     return new ParseException(token, exptokseq, tokenImage);
9057   }
9058 
9059   /** Enable tracing. */
enable_tracing()9060   final public void enable_tracing() {
9061   }
9062 
9063   /** Disable tracing. */
disable_tracing()9064   final public void disable_tracing() {
9065   }
9066 
jj_rescan_token()9067   private void jj_rescan_token() {
9068     jj_rescan = true;
9069     for (int i = 0; i < 47; i++) {
9070     try {
9071       JJCalls p = jj_2_rtns[i];
9072       do {
9073         if (p.gen > jj_gen) {
9074           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
9075           switch (i) {
9076             case 0: jj_3_1(); break;
9077             case 1: jj_3_2(); break;
9078             case 2: jj_3_3(); break;
9079             case 3: jj_3_4(); break;
9080             case 4: jj_3_5(); break;
9081             case 5: jj_3_6(); break;
9082             case 6: jj_3_7(); break;
9083             case 7: jj_3_8(); break;
9084             case 8: jj_3_9(); break;
9085             case 9: jj_3_10(); break;
9086             case 10: jj_3_11(); break;
9087             case 11: jj_3_12(); break;
9088             case 12: jj_3_13(); break;
9089             case 13: jj_3_14(); break;
9090             case 14: jj_3_15(); break;
9091             case 15: jj_3_16(); break;
9092             case 16: jj_3_17(); break;
9093             case 17: jj_3_18(); break;
9094             case 18: jj_3_19(); break;
9095             case 19: jj_3_20(); break;
9096             case 20: jj_3_21(); break;
9097             case 21: jj_3_22(); break;
9098             case 22: jj_3_23(); break;
9099             case 23: jj_3_24(); break;
9100             case 24: jj_3_25(); break;
9101             case 25: jj_3_26(); break;
9102             case 26: jj_3_27(); break;
9103             case 27: jj_3_28(); break;
9104             case 28: jj_3_29(); break;
9105             case 29: jj_3_30(); break;
9106             case 30: jj_3_31(); break;
9107             case 31: jj_3_32(); break;
9108             case 32: jj_3_33(); break;
9109             case 33: jj_3_34(); break;
9110             case 34: jj_3_35(); break;
9111             case 35: jj_3_36(); break;
9112             case 36: jj_3_37(); break;
9113             case 37: jj_3_38(); break;
9114             case 38: jj_3_39(); break;
9115             case 39: jj_3_40(); break;
9116             case 40: jj_3_41(); break;
9117             case 41: jj_3_42(); break;
9118             case 42: jj_3_43(); break;
9119             case 43: jj_3_44(); break;
9120             case 44: jj_3_45(); break;
9121             case 45: jj_3_46(); break;
9122             case 46: jj_3_47(); break;
9123           }
9124         }
9125         p = p.next;
9126       } while (p != null);
9127       } catch(LookaheadSuccess ls) { }
9128     }
9129     jj_rescan = false;
9130   }
9131 
jj_save(int index, int xla)9132   private void jj_save(int index, int xla) {
9133     JJCalls p = jj_2_rtns[index];
9134     while (p.gen > jj_gen) {
9135       if (p.next == null) { p = p.next = new JJCalls(); break; }
9136       p = p.next;
9137     }
9138     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
9139   }
9140 
9141   static final class JJCalls {
9142     int gen;
9143     Token first;
9144     int arg;
9145     JJCalls next;
9146   }
9147 
9148 }
9149