001// $ANTLR 2.7.7 (20060906): "java.g" -> "GeneratedJavaRecognizer.java"$
002
003package com.puppycrawl.tools.checkstyle.grammar;
004
005import com.puppycrawl.tools.checkstyle.DetailAstImpl;
006import java.text.MessageFormat;
007import antlr.CommonHiddenStreamToken;
008
009import antlr.TokenBuffer;
010import antlr.TokenStreamException;
011import antlr.TokenStreamIOException;
012import antlr.ANTLRException;
013import antlr.LLkParser;
014import antlr.Token;
015import antlr.TokenStream;
016import antlr.RecognitionException;
017import antlr.NoViableAltException;
018import antlr.MismatchedTokenException;
019import antlr.SemanticException;
020import antlr.ParserSharedInputState;
021import antlr.collections.impl.BitSet;
022import antlr.collections.AST;
023import java.util.Hashtable;
024import antlr.ASTFactory;
025import antlr.ASTPair;
026import antlr.collections.impl.ASTArray;
027
028/** Java 1.5 Recognizer
029 *
030 * This grammar is in the PUBLIC DOMAIN
031 */
032public class GeneratedJavaRecognizer extends antlr.LLkParser       implements GeneratedJavaTokenTypes
033 {
034
035    /**
036     * Counts the number of LT seen in the typeArguments production.
037     * It is used in semantic predicates to ensure we have seen
038     * enough closing '>' characters; which actually may have been
039     * either GT, SR or BSR tokens.
040     */
041    private int ltCounter = 0;
042
043    /**
044     * Counts the number of '>' characters that have been seen but
045     * have not yet been associated with the end of a typeParameters or
046     * typeArguments production. This is necessary because SR and BSR
047     * tokens have significance (the extra '>' characters) not only for the production
048     * that sees them but also productions higher in the stack (possibly right up to an outer-most
049     * typeParameters production). As the stack of the typeArguments/typeParameters productions
050     * unwind, any '>' characters seen prematurely through SRs or BSRs are reconciled.
051     */
052    private int gtToReconcile = 0;
053
054    /**
055     * The most recently seen gt sequence (GT, SR or BSR)
056     * encountered in any type argument or type parameter production.
057     * We retain this so we can keep manage the synthetic GT tokens/
058     * AST nodes we emit to have '<' & '>' balanced trees when encountering
059     * SR and BSR tokens.
060     */
061    private DetailAstImpl currentGtSequence = null;
062
063    /**
064     * Consume a sequence of '>' characters (GT, SR or BSR)
065     * and match these against the '<' characters seen.
066     */
067    private void consumeCurrentGtSequence(DetailAstImpl gtSequence)
068    {
069        currentGtSequence = gtSequence;
070        gtToReconcile += currentGtSequence.getText().length();
071        ltCounter -= currentGtSequence.getText().length();
072    }
073
074    /**
075     * Emits a single GT AST node with the line and column correctly
076     * set to its position in the source file. This must only
077     * ever be called when a typeParameters or typeArguments production
078     * is ending and there is at least one GT character to be emitted.
079     *
080     * @see #areThereGtsToEmit
081     */
082    private DetailAstImpl emitSingleGt()
083    {
084        gtToReconcile -= 1;
085        CommonHiddenStreamToken gtToken = new CommonHiddenStreamToken(GENERIC_END, ">");
086        gtToken.setLine(currentGtSequence.getLineNo());
087        gtToken.setColumn(currentGtSequence.getColumnNo()
088                            + (currentGtSequence.getText().length() - gtToReconcile));
089        return (DetailAstImpl)astFactory.create(gtToken);
090    }
091
092    /**
093     * @return true if there is at least one '>' seen but
094     * not reconciled with the end of a typeParameters or
095     * typeArguments production; returns false otherwise
096     */
097    private boolean areThereGtsToEmit()
098    {
099        return (gtToReconcile > 0);
100    }
101
102    /**
103     * @return true if there is exactly one '>' seen but
104     * not reconciled with the end of a typeParameters
105     * production; returns false otherwise
106     */
107    private boolean isThereASingleGtToEmit()
108    {
109        return (gtToReconcile == 1);
110    }
111
112    /**
113     * @return true if the '<' and '>' are evenly matched
114     * at the current typeParameters/typeArguments nested depth
115     */
116    private boolean areLtsAndGtsBalanced(int currentLtLevel)
117    {
118        return ((currentLtLevel != 0) || ltCounter == currentLtLevel);
119    }
120
121protected GeneratedJavaRecognizer(TokenBuffer tokenBuf, int k) {
122  super(tokenBuf,k);
123  tokenNames = _tokenNames;
124  buildTokenTypeASTClassMap();
125  astFactory = new ASTFactory(getTokenTypeToASTClassMap());
126}
127
128public GeneratedJavaRecognizer(TokenBuffer tokenBuf) {
129  this(tokenBuf,2);
130}
131
132protected GeneratedJavaRecognizer(TokenStream lexer, int k) {
133  super(lexer,k);
134  tokenNames = _tokenNames;
135  buildTokenTypeASTClassMap();
136  astFactory = new ASTFactory(getTokenTypeToASTClassMap());
137}
138
139public GeneratedJavaRecognizer(TokenStream lexer) {
140  this(lexer,2);
141}
142
143public GeneratedJavaRecognizer(ParserSharedInputState state) {
144  super(state,2);
145  tokenNames = _tokenNames;
146  buildTokenTypeASTClassMap();
147  astFactory = new ASTFactory(getTokenTypeToASTClassMap());
148}
149
150        public final void compilationUnit() throws RecognitionException, TokenStreamException {
151                
152                returnAST = null;
153                ASTPair currentAST = new ASTPair();
154                AST compilationUnit_AST = null;
155                
156                {
157                boolean synPredMatched4 = false;
158                if (((LA(1)==LITERAL_package||LA(1)==AT) && (LA(2)==IDENT))) {
159                        int _m4 = mark();
160                        synPredMatched4 = true;
161                        inputState.guessing++;
162                        try {
163                                {
164                                annotations();
165                                match(LITERAL_package);
166                                }
167                        }
168                        catch (RecognitionException pe) {
169                                synPredMatched4 = false;
170                        }
171                        rewind(_m4);
172inputState.guessing--;
173                }
174                if ( synPredMatched4 ) {
175                        packageDefinition();
176                        astFactory.addASTChild(currentAST, returnAST);
177                }
178                else if ((_tokenSet_0.member(LA(1))) && (_tokenSet_1.member(LA(2)))) {
179                }
180                else {
181                        throw new NoViableAltException(LT(1), getFilename());
182                }
183                
184                }
185                {
186                _loop6:
187                do {
188                        if ((LA(1)==SEMI||LA(1)==LITERAL_import) && (_tokenSet_1.member(LA(2)))) {
189                                importDefinition();
190                                astFactory.addASTChild(currentAST, returnAST);
191                        }
192                        else {
193                                break _loop6;
194                        }
195                        
196                } while (true);
197                }
198                {
199                _loop8:
200                do {
201                        if ((_tokenSet_2.member(LA(1)))) {
202                                typeDefinition();
203                                astFactory.addASTChild(currentAST, returnAST);
204                        }
205                        else {
206                                break _loop8;
207                        }
208                        
209                } while (true);
210                }
211                match(Token.EOF_TYPE);
212                compilationUnit_AST = (AST)currentAST.root;
213                returnAST = compilationUnit_AST;
214        }
215        
216        public final void annotations() throws RecognitionException, TokenStreamException {
217                
218                returnAST = null;
219                ASTPair currentAST = new ASTPair();
220                AST annotations_AST = null;
221                
222                {
223                _loop76:
224                do {
225                        if ((LA(1)==AT) && (LA(2)==IDENT)) {
226                                annotation();
227                                astFactory.addASTChild(currentAST, returnAST);
228                        }
229                        else {
230                                break _loop76;
231                        }
232                        
233                } while (true);
234                }
235                if ( inputState.guessing==0 ) {
236                        annotations_AST = (AST)currentAST.root;
237                        annotations_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(ANNOTATIONS,"ANNOTATIONS")).add(annotations_AST));
238                        currentAST.root = annotations_AST;
239                        currentAST.child = annotations_AST!=null &&annotations_AST.getFirstChild()!=null ?
240                                annotations_AST.getFirstChild() : annotations_AST;
241                        currentAST.advanceChildToEnd();
242                }
243                annotations_AST = (AST)currentAST.root;
244                returnAST = annotations_AST;
245        }
246        
247        public final void packageDefinition() throws RecognitionException, TokenStreamException {
248                
249                returnAST = null;
250                ASTPair currentAST = new ASTPair();
251                AST packageDefinition_AST = null;
252                Token  p = null;
253                AST p_AST = null;
254                
255                try {      // for error handling
256                        annotations();
257                        astFactory.addASTChild(currentAST, returnAST);
258                        p = LT(1);
259                        p_AST = astFactory.create(p);
260                        astFactory.makeASTRoot(currentAST, p_AST);
261                        match(LITERAL_package);
262                        if ( inputState.guessing==0 ) {
263                                p_AST.setType(PACKAGE_DEF);
264                        }
265                        identifier();
266                        astFactory.addASTChild(currentAST, returnAST);
267                        AST tmp2_AST = null;
268                        tmp2_AST = astFactory.create(LT(1));
269                        astFactory.addASTChild(currentAST, tmp2_AST);
270                        match(SEMI);
271                        packageDefinition_AST = (AST)currentAST.root;
272                }
273                catch (RecognitionException ex) {
274                        if (inputState.guessing==0) {
275                                reportError(ex);
276                                recover(ex,_tokenSet_0);
277                        } else {
278                          throw ex;
279                        }
280                }
281                returnAST = packageDefinition_AST;
282        }
283        
284        public final void importDefinition() throws RecognitionException, TokenStreamException {
285                
286                returnAST = null;
287                ASTPair currentAST = new ASTPair();
288                AST importDefinition_AST = null;
289                Token  i = null;
290                AST i_AST = null;
291                
292                try {      // for error handling
293                        switch ( LA(1)) {
294                        case LITERAL_import:
295                        {
296                                i = LT(1);
297                                i_AST = astFactory.create(i);
298                                astFactory.makeASTRoot(currentAST, i_AST);
299                                match(LITERAL_import);
300                                if ( inputState.guessing==0 ) {
301                                        i_AST.setType(IMPORT);
302                                }
303                                {
304                                switch ( LA(1)) {
305                                case LITERAL_static:
306                                {
307                                        AST tmp3_AST = null;
308                                        tmp3_AST = astFactory.create(LT(1));
309                                        astFactory.addASTChild(currentAST, tmp3_AST);
310                                        match(LITERAL_static);
311                                        if ( inputState.guessing==0 ) {
312                                                i_AST.setType(STATIC_IMPORT);
313                                        }
314                                        break;
315                                }
316                                case IDENT:
317                                {
318                                        break;
319                                }
320                                default:
321                                {
322                                        throw new NoViableAltException(LT(1), getFilename());
323                                }
324                                }
325                                }
326                                identifierStar();
327                                astFactory.addASTChild(currentAST, returnAST);
328                                AST tmp4_AST = null;
329                                tmp4_AST = astFactory.create(LT(1));
330                                astFactory.addASTChild(currentAST, tmp4_AST);
331                                match(SEMI);
332                                importDefinition_AST = (AST)currentAST.root;
333                                break;
334                        }
335                        case SEMI:
336                        {
337                                AST tmp5_AST = null;
338                                tmp5_AST = astFactory.create(LT(1));
339                                astFactory.addASTChild(currentAST, tmp5_AST);
340                                match(SEMI);
341                                importDefinition_AST = (AST)currentAST.root;
342                                break;
343                        }
344                        default:
345                        {
346                                throw new NoViableAltException(LT(1), getFilename());
347                        }
348                        }
349                }
350                catch (RecognitionException ex) {
351                        if (inputState.guessing==0) {
352                                reportError(ex);
353                                recover(ex,_tokenSet_0);
354                        } else {
355                          throw ex;
356                        }
357                }
358                returnAST = importDefinition_AST;
359        }
360        
361        public final void typeDefinition() throws RecognitionException, TokenStreamException {
362                
363                returnAST = null;
364                ASTPair currentAST = new ASTPair();
365                AST typeDefinition_AST = null;
366                AST m_AST = null;
367                
368                try {      // for error handling
369                        switch ( LA(1)) {
370                        case FINAL:
371                        case ABSTRACT:
372                        case STRICTFP:
373                        case LITERAL_private:
374                        case LITERAL_public:
375                        case LITERAL_protected:
376                        case LITERAL_static:
377                        case LITERAL_transient:
378                        case LITERAL_native:
379                        case LITERAL_synchronized:
380                        case LITERAL_volatile:
381                        case LITERAL_class:
382                        case LITERAL_interface:
383                        case LITERAL_default:
384                        case ENUM:
385                        case AT:
386                        {
387                                modifiers();
388                                m_AST = (AST)returnAST;
389                                typeDefinitionInternal(m_AST);
390                                astFactory.addASTChild(currentAST, returnAST);
391                                typeDefinition_AST = (AST)currentAST.root;
392                                break;
393                        }
394                        case SEMI:
395                        {
396                                AST tmp6_AST = null;
397                                tmp6_AST = astFactory.create(LT(1));
398                                astFactory.addASTChild(currentAST, tmp6_AST);
399                                match(SEMI);
400                                typeDefinition_AST = (AST)currentAST.root;
401                                break;
402                        }
403                        default:
404                        {
405                                throw new NoViableAltException(LT(1), getFilename());
406                        }
407                        }
408                }
409                catch (RecognitionException ex) {
410                        if (inputState.guessing==0) {
411                                reportError(ex);
412                                recover(ex,_tokenSet_3);
413                        } else {
414                          throw ex;
415                        }
416                }
417                returnAST = typeDefinition_AST;
418        }
419        
420        public final void identifier() throws RecognitionException, TokenStreamException {
421                
422                returnAST = null;
423                ASTPair currentAST = new ASTPair();
424                AST identifier_AST = null;
425                
426                AST tmp7_AST = null;
427                tmp7_AST = astFactory.create(LT(1));
428                astFactory.addASTChild(currentAST, tmp7_AST);
429                match(IDENT);
430                {
431                _loop62:
432                do {
433                        if ((LA(1)==DOT)) {
434                                AST tmp8_AST = null;
435                                tmp8_AST = astFactory.create(LT(1));
436                                astFactory.makeASTRoot(currentAST, tmp8_AST);
437                                match(DOT);
438                                AST tmp9_AST = null;
439                                tmp9_AST = astFactory.create(LT(1));
440                                astFactory.addASTChild(currentAST, tmp9_AST);
441                                match(IDENT);
442                        }
443                        else {
444                                break _loop62;
445                        }
446                        
447                } while (true);
448                }
449                identifier_AST = (AST)currentAST.root;
450                returnAST = identifier_AST;
451        }
452        
453        public final void identifierStar() throws RecognitionException, TokenStreamException {
454                
455                returnAST = null;
456                ASTPair currentAST = new ASTPair();
457                AST identifierStar_AST = null;
458                
459                AST tmp10_AST = null;
460                tmp10_AST = astFactory.create(LT(1));
461                astFactory.addASTChild(currentAST, tmp10_AST);
462                match(IDENT);
463                {
464                _loop65:
465                do {
466                        if ((LA(1)==DOT) && (LA(2)==IDENT)) {
467                                AST tmp11_AST = null;
468                                tmp11_AST = astFactory.create(LT(1));
469                                astFactory.makeASTRoot(currentAST, tmp11_AST);
470                                match(DOT);
471                                AST tmp12_AST = null;
472                                tmp12_AST = astFactory.create(LT(1));
473                                astFactory.addASTChild(currentAST, tmp12_AST);
474                                match(IDENT);
475                        }
476                        else {
477                                break _loop65;
478                        }
479                        
480                } while (true);
481                }
482                {
483                switch ( LA(1)) {
484                case DOT:
485                {
486                        AST tmp13_AST = null;
487                        tmp13_AST = astFactory.create(LT(1));
488                        astFactory.makeASTRoot(currentAST, tmp13_AST);
489                        match(DOT);
490                        AST tmp14_AST = null;
491                        tmp14_AST = astFactory.create(LT(1));
492                        astFactory.addASTChild(currentAST, tmp14_AST);
493                        match(STAR);
494                        break;
495                }
496                case SEMI:
497                {
498                        break;
499                }
500                default:
501                {
502                        throw new NoViableAltException(LT(1), getFilename());
503                }
504                }
505                }
506                identifierStar_AST = (AST)currentAST.root;
507                returnAST = identifierStar_AST;
508        }
509        
510        public final void modifiers() throws RecognitionException, TokenStreamException {
511                
512                returnAST = null;
513                ASTPair currentAST = new ASTPair();
514                AST modifiers_AST = null;
515                
516                {
517                _loop69:
518                do {
519                        if ((_tokenSet_4.member(LA(1)))) {
520                                modifier();
521                                astFactory.addASTChild(currentAST, returnAST);
522                        }
523                        else if (((LA(1)==AT) && (LA(2)==IDENT))&&(LA(1)==AT && !LT(2).getText().equals("interface"))) {
524                                annotation();
525                                astFactory.addASTChild(currentAST, returnAST);
526                        }
527                        else {
528                                break _loop69;
529                        }
530                        
531                } while (true);
532                }
533                if ( inputState.guessing==0 ) {
534                        modifiers_AST = (AST)currentAST.root;
535                        modifiers_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(MODIFIERS,"MODIFIERS")).add(modifiers_AST));
536                        currentAST.root = modifiers_AST;
537                        currentAST.child = modifiers_AST!=null &&modifiers_AST.getFirstChild()!=null ?
538                                modifiers_AST.getFirstChild() : modifiers_AST;
539                        currentAST.advanceChildToEnd();
540                }
541                modifiers_AST = (AST)currentAST.root;
542                returnAST = modifiers_AST;
543        }
544        
545        protected final void typeDefinitionInternal(
546                AST modifiers
547        ) throws RecognitionException, TokenStreamException {
548                
549                returnAST = null;
550                ASTPair currentAST = new ASTPair();
551                AST typeDefinitionInternal_AST = null;
552                
553                switch ( LA(1)) {
554                case LITERAL_class:
555                {
556                        classDefinition(modifiers);
557                        astFactory.addASTChild(currentAST, returnAST);
558                        typeDefinitionInternal_AST = (AST)currentAST.root;
559                        break;
560                }
561                case LITERAL_interface:
562                {
563                        interfaceDefinition(modifiers);
564                        astFactory.addASTChild(currentAST, returnAST);
565                        typeDefinitionInternal_AST = (AST)currentAST.root;
566                        break;
567                }
568                case ENUM:
569                {
570                        enumDefinition(modifiers);
571                        astFactory.addASTChild(currentAST, returnAST);
572                        typeDefinitionInternal_AST = (AST)currentAST.root;
573                        break;
574                }
575                case AT:
576                {
577                        annotationDefinition(modifiers);
578                        astFactory.addASTChild(currentAST, returnAST);
579                        typeDefinitionInternal_AST = (AST)currentAST.root;
580                        break;
581                }
582                default:
583                {
584                        throw new NoViableAltException(LT(1), getFilename());
585                }
586                }
587                returnAST = typeDefinitionInternal_AST;
588        }
589        
590        public final void classDefinition(
591                AST modifiers
592        ) throws RecognitionException, TokenStreamException {
593                
594                returnAST = null;
595                ASTPair currentAST = new ASTPair();
596                AST classDefinition_AST = null;
597                Token  c = null;
598                AST c_AST = null;
599                AST tp_AST = null;
600                AST sc_AST = null;
601                AST ic_AST = null;
602                AST cb_AST = null;
603                
604                c = LT(1);
605                c_AST = astFactory.create(c);
606                match(LITERAL_class);
607                AST tmp15_AST = null;
608                tmp15_AST = astFactory.create(LT(1));
609                match(IDENT);
610                {
611                switch ( LA(1)) {
612                case LT:
613                {
614                        typeParameters();
615                        tp_AST = (AST)returnAST;
616                        break;
617                }
618                case LITERAL_extends:
619                case LCURLY:
620                case LITERAL_implements:
621                {
622                        break;
623                }
624                default:
625                {
626                        throw new NoViableAltException(LT(1), getFilename());
627                }
628                }
629                }
630                superClassClause();
631                sc_AST = (AST)returnAST;
632                implementsClause();
633                ic_AST = (AST)returnAST;
634                classBlock();
635                cb_AST = (AST)returnAST;
636                if ( inputState.guessing==0 ) {
637                        classDefinition_AST = (AST)currentAST.root;
638                        classDefinition_AST = (AST)astFactory.make( (new ASTArray(8)).add(astFactory.create(CLASS_DEF,"CLASS_DEF")).add(modifiers).add(c_AST).add(tmp15_AST).add(tp_AST).add(sc_AST).add(ic_AST).add(cb_AST));
639                        currentAST.root = classDefinition_AST;
640                        currentAST.child = classDefinition_AST!=null &&classDefinition_AST.getFirstChild()!=null ?
641                                classDefinition_AST.getFirstChild() : classDefinition_AST;
642                        currentAST.advanceChildToEnd();
643                }
644                returnAST = classDefinition_AST;
645        }
646        
647        public final void interfaceDefinition(
648                AST modifiers
649        ) throws RecognitionException, TokenStreamException {
650                
651                returnAST = null;
652                ASTPair currentAST = new ASTPair();
653                AST interfaceDefinition_AST = null;
654                Token  i = null;
655                AST i_AST = null;
656                AST tp_AST = null;
657                AST ie_AST = null;
658                AST cb_AST = null;
659                
660                i = LT(1);
661                i_AST = astFactory.create(i);
662                match(LITERAL_interface);
663                AST tmp16_AST = null;
664                tmp16_AST = astFactory.create(LT(1));
665                match(IDENT);
666                {
667                switch ( LA(1)) {
668                case LT:
669                {
670                        typeParameters();
671                        tp_AST = (AST)returnAST;
672                        break;
673                }
674                case LITERAL_extends:
675                case LCURLY:
676                {
677                        break;
678                }
679                default:
680                {
681                        throw new NoViableAltException(LT(1), getFilename());
682                }
683                }
684                }
685                interfaceExtends();
686                ie_AST = (AST)returnAST;
687                classBlock();
688                cb_AST = (AST)returnAST;
689                if ( inputState.guessing==0 ) {
690                        interfaceDefinition_AST = (AST)currentAST.root;
691                        interfaceDefinition_AST = (AST)astFactory.make( (new ASTArray(7)).add(astFactory.create(INTERFACE_DEF,"INTERFACE_DEF")).add(modifiers).add(i_AST).add(tmp16_AST).add(tp_AST).add(ie_AST).add(cb_AST));
692                        currentAST.root = interfaceDefinition_AST;
693                        currentAST.child = interfaceDefinition_AST!=null &&interfaceDefinition_AST.getFirstChild()!=null ?
694                                interfaceDefinition_AST.getFirstChild() : interfaceDefinition_AST;
695                        currentAST.advanceChildToEnd();
696                }
697                returnAST = interfaceDefinition_AST;
698        }
699        
700        public final void enumDefinition(
701                AST modifiers
702        ) throws RecognitionException, TokenStreamException {
703                
704                returnAST = null;
705                ASTPair currentAST = new ASTPair();
706                AST enumDefinition_AST = null;
707                Token  e = null;
708                AST e_AST = null;
709                AST ic_AST = null;
710                AST eb_AST = null;
711                
712                e = LT(1);
713                e_AST = astFactory.create(e);
714                match(ENUM);
715                AST tmp17_AST = null;
716                tmp17_AST = astFactory.create(LT(1));
717                match(IDENT);
718                implementsClause();
719                ic_AST = (AST)returnAST;
720                enumBlock();
721                eb_AST = (AST)returnAST;
722                if ( inputState.guessing==0 ) {
723                        enumDefinition_AST = (AST)currentAST.root;
724                        enumDefinition_AST = (AST)astFactory.make( (new ASTArray(6)).add(astFactory.create(ENUM_DEF,"ENUM_DEF")).add(modifiers).add(e_AST).add(tmp17_AST).add(ic_AST).add(eb_AST));
725                        currentAST.root = enumDefinition_AST;
726                        currentAST.child = enumDefinition_AST!=null &&enumDefinition_AST.getFirstChild()!=null ?
727                                enumDefinition_AST.getFirstChild() : enumDefinition_AST;
728                        currentAST.advanceChildToEnd();
729                }
730                returnAST = enumDefinition_AST;
731        }
732        
733        public final void annotationDefinition(
734                AST modifiers
735        ) throws RecognitionException, TokenStreamException {
736                
737                returnAST = null;
738                ASTPair currentAST = new ASTPair();
739                AST annotationDefinition_AST = null;
740                Token  a = null;
741                AST a_AST = null;
742                Token  i = null;
743                AST i_AST = null;
744                AST ab_AST = null;
745                
746                a = LT(1);
747                a_AST = astFactory.create(a);
748                match(AT);
749                i = LT(1);
750                i_AST = astFactory.create(i);
751                match(LITERAL_interface);
752                AST tmp18_AST = null;
753                tmp18_AST = astFactory.create(LT(1));
754                match(IDENT);
755                annotationBlock();
756                ab_AST = (AST)returnAST;
757                if ( inputState.guessing==0 ) {
758                        annotationDefinition_AST = (AST)currentAST.root;
759                        annotationDefinition_AST = (AST)astFactory.make( (new ASTArray(6)).add(astFactory.create(ANNOTATION_DEF,"ANNOTATION_DEF")).add(modifiers).add(a_AST).add(i_AST).add(tmp18_AST).add(ab_AST));
760                        currentAST.root = annotationDefinition_AST;
761                        currentAST.child = annotationDefinition_AST!=null &&annotationDefinition_AST.getFirstChild()!=null ?
762                                annotationDefinition_AST.getFirstChild() : annotationDefinition_AST;
763                        currentAST.advanceChildToEnd();
764                }
765                returnAST = annotationDefinition_AST;
766        }
767        
768        public final void typeSpec(
769                boolean addImagNode
770        ) throws RecognitionException, TokenStreamException {
771                
772                returnAST = null;
773                ASTPair currentAST = new ASTPair();
774                AST typeSpec_AST = null;
775                
776                switch ( LA(1)) {
777                case IDENT:
778                case AT:
779                {
780                        classTypeSpec(addImagNode);
781                        astFactory.addASTChild(currentAST, returnAST);
782                        typeSpec_AST = (AST)currentAST.root;
783                        break;
784                }
785                case LITERAL_void:
786                case LITERAL_boolean:
787                case LITERAL_byte:
788                case LITERAL_char:
789                case LITERAL_short:
790                case LITERAL_int:
791                case LITERAL_float:
792                case LITERAL_long:
793                case LITERAL_double:
794                {
795                        builtInTypeSpec(addImagNode);
796                        astFactory.addASTChild(currentAST, returnAST);
797                        typeSpec_AST = (AST)currentAST.root;
798                        break;
799                }
800                default:
801                {
802                        throw new NoViableAltException(LT(1), getFilename());
803                }
804                }
805                returnAST = typeSpec_AST;
806        }
807        
808        public final void classTypeSpec(
809                boolean addImagNode
810        ) throws RecognitionException, TokenStreamException {
811                
812                returnAST = null;
813                ASTPair currentAST = new ASTPair();
814                AST classTypeSpec_AST = null;
815                Token  lb = null;
816                AST lb_AST = null;
817                
818                classOrInterfaceType(addImagNode);
819                astFactory.addASTChild(currentAST, returnAST);
820                {
821                _loop24:
822                do {
823                        if ((LA(1)==LBRACK||LA(1)==AT) && (LA(2)==RBRACK||LA(2)==IDENT)) {
824                                {
825                                if (((LA(1)==LBRACK||LA(1)==AT) && (LA(2)==RBRACK||LA(2)==IDENT))&&(LA(1) == AT)) {
826                                        annotations();
827                                        astFactory.addASTChild(currentAST, returnAST);
828                                }
829                                else if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
830                                }
831                                else {
832                                        throw new NoViableAltException(LT(1), getFilename());
833                                }
834                                
835                                }
836                                lb = LT(1);
837                                lb_AST = astFactory.create(lb);
838                                astFactory.makeASTRoot(currentAST, lb_AST);
839                                match(LBRACK);
840                                if ( inputState.guessing==0 ) {
841                                        lb_AST.setType(ARRAY_DECLARATOR);
842                                }
843                                AST tmp19_AST = null;
844                                tmp19_AST = astFactory.create(LT(1));
845                                astFactory.addASTChild(currentAST, tmp19_AST);
846                                match(RBRACK);
847                        }
848                        else {
849                                break _loop24;
850                        }
851                        
852                } while (true);
853                }
854                if ( inputState.guessing==0 ) {
855                        classTypeSpec_AST = (AST)currentAST.root;
856                        
857                        if ( addImagNode ) {
858                        classTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(classTypeSpec_AST));
859                        }
860                        
861                        currentAST.root = classTypeSpec_AST;
862                        currentAST.child = classTypeSpec_AST!=null &&classTypeSpec_AST.getFirstChild()!=null ?
863                                classTypeSpec_AST.getFirstChild() : classTypeSpec_AST;
864                        currentAST.advanceChildToEnd();
865                }
866                classTypeSpec_AST = (AST)currentAST.root;
867                returnAST = classTypeSpec_AST;
868        }
869        
870        public final void builtInTypeSpec(
871                boolean addImagNode
872        ) throws RecognitionException, TokenStreamException {
873                
874                returnAST = null;
875                ASTPair currentAST = new ASTPair();
876                AST builtInTypeSpec_AST = null;
877                Token  lb = null;
878                AST lb_AST = null;
879                
880                builtInType();
881                astFactory.addASTChild(currentAST, returnAST);
882                {
883                _loop54:
884                do {
885                        if ((LA(1)==LBRACK||LA(1)==AT) && (LA(2)==RBRACK||LA(2)==IDENT)) {
886                                {
887                                if (((LA(1)==LBRACK||LA(1)==AT) && (LA(2)==RBRACK||LA(2)==IDENT))&&(LA(1) == AT)) {
888                                        annotations();
889                                        astFactory.addASTChild(currentAST, returnAST);
890                                }
891                                else if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
892                                }
893                                else {
894                                        throw new NoViableAltException(LT(1), getFilename());
895                                }
896                                
897                                }
898                                lb = LT(1);
899                                lb_AST = astFactory.create(lb);
900                                astFactory.makeASTRoot(currentAST, lb_AST);
901                                match(LBRACK);
902                                if ( inputState.guessing==0 ) {
903                                        lb_AST.setType(ARRAY_DECLARATOR);
904                                }
905                                AST tmp20_AST = null;
906                                tmp20_AST = astFactory.create(LT(1));
907                                astFactory.addASTChild(currentAST, tmp20_AST);
908                                match(RBRACK);
909                        }
910                        else {
911                                break _loop54;
912                        }
913                        
914                } while (true);
915                }
916                if ( inputState.guessing==0 ) {
917                        builtInTypeSpec_AST = (AST)currentAST.root;
918                        
919                        if ( addImagNode ) {
920                        builtInTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(builtInTypeSpec_AST));
921                        }
922                        
923                        currentAST.root = builtInTypeSpec_AST;
924                        currentAST.child = builtInTypeSpec_AST!=null &&builtInTypeSpec_AST.getFirstChild()!=null ?
925                                builtInTypeSpec_AST.getFirstChild() : builtInTypeSpec_AST;
926                        currentAST.advanceChildToEnd();
927                }
928                builtInTypeSpec_AST = (AST)currentAST.root;
929                returnAST = builtInTypeSpec_AST;
930        }
931        
932        public final void variableLengthParameterTypeSpec() throws RecognitionException, TokenStreamException {
933                
934                returnAST = null;
935                ASTPair currentAST = new ASTPair();
936                AST variableLengthParameterTypeSpec_AST = null;
937                Token  lb = null;
938                AST lb_AST = null;
939                
940                {
941                switch ( LA(1)) {
942                case IDENT:
943                case AT:
944                {
945                        classOrInterfaceType(false);
946                        astFactory.addASTChild(currentAST, returnAST);
947                        break;
948                }
949                case LITERAL_void:
950                case LITERAL_boolean:
951                case LITERAL_byte:
952                case LITERAL_char:
953                case LITERAL_short:
954                case LITERAL_int:
955                case LITERAL_float:
956                case LITERAL_long:
957                case LITERAL_double:
958                {
959                        builtInType();
960                        astFactory.addASTChild(currentAST, returnAST);
961                        break;
962                }
963                default:
964                {
965                        throw new NoViableAltException(LT(1), getFilename());
966                }
967                }
968                }
969                {
970                if (((_tokenSet_5.member(LA(1))) && (LA(2)==RBRACK||LA(2)==IDENT))&&(LA(1) == AT)) {
971                        annotations();
972                        astFactory.addASTChild(currentAST, returnAST);
973                }
974                else if ((LA(1)==LBRACK||LA(1)==ELLIPSIS) && (LA(2)==RBRACK||LA(2)==IDENT)) {
975                }
976                else {
977                        throw new NoViableAltException(LT(1), getFilename());
978                }
979                
980                }
981                {
982                _loop20:
983                do {
984                        if ((LA(1)==LBRACK)) {
985                                lb = LT(1);
986                                lb_AST = astFactory.create(lb);
987                                astFactory.makeASTRoot(currentAST, lb_AST);
988                                match(LBRACK);
989                                if ( inputState.guessing==0 ) {
990                                        lb_AST.setType(ARRAY_DECLARATOR);
991                                }
992                                AST tmp21_AST = null;
993                                tmp21_AST = astFactory.create(LT(1));
994                                astFactory.addASTChild(currentAST, tmp21_AST);
995                                match(RBRACK);
996                                {
997                                if (((_tokenSet_5.member(LA(1))) && (LA(2)==RBRACK||LA(2)==IDENT))&&(LA(1) == AT)) {
998                                        annotations();
999                                        astFactory.addASTChild(currentAST, returnAST);
1000                                }
1001                                else if ((LA(1)==LBRACK||LA(1)==ELLIPSIS) && (LA(2)==RBRACK||LA(2)==IDENT)) {
1002                                }
1003                                else {
1004                                        throw new NoViableAltException(LT(1), getFilename());
1005                                }
1006                                
1007                                }
1008                        }
1009                        else {
1010                                break _loop20;
1011                        }
1012                        
1013                } while (true);
1014                }
1015                variableLengthParameterTypeSpec_AST = (AST)currentAST.root;
1016                returnAST = variableLengthParameterTypeSpec_AST;
1017        }
1018        
1019        public final void classOrInterfaceType(
1020                boolean addImagNode
1021        ) throws RecognitionException, TokenStreamException {
1022                
1023                returnAST = null;
1024                ASTPair currentAST = new ASTPair();
1025                AST classOrInterfaceType_AST = null;
1026                
1027                {
1028                if (((LA(1)==IDENT||LA(1)==AT) && (_tokenSet_6.member(LA(2))))&&(LA(1) == AT)) {
1029                        annotations();
1030                        astFactory.addASTChild(currentAST, returnAST);
1031                }
1032                else if ((LA(1)==IDENT) && (_tokenSet_6.member(LA(2)))) {
1033                }
1034                else {
1035                        throw new NoViableAltException(LT(1), getFilename());
1036                }
1037                
1038                }
1039                AST tmp22_AST = null;
1040                tmp22_AST = astFactory.create(LT(1));
1041                astFactory.addASTChild(currentAST, tmp22_AST);
1042                match(IDENT);
1043                {
1044                if ((LA(1)==LT) && (_tokenSet_6.member(LA(2)))) {
1045                        typeArguments(addImagNode);
1046                        astFactory.addASTChild(currentAST, returnAST);
1047                }
1048                else if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1049                }
1050                else {
1051                        throw new NoViableAltException(LT(1), getFilename());
1052                }
1053                
1054                }
1055                {
1056                _loop31:
1057                do {
1058                        if ((LA(1)==DOT) && (LA(2)==IDENT||LA(2)==AT)) {
1059                                AST tmp23_AST = null;
1060                                tmp23_AST = astFactory.create(LT(1));
1061                                astFactory.makeASTRoot(currentAST, tmp23_AST);
1062                                match(DOT);
1063                                {
1064                                if (((LA(1)==IDENT||LA(1)==AT) && (_tokenSet_6.member(LA(2))))&&(LA(1) == AT)) {
1065                                        annotations();
1066                                        astFactory.addASTChild(currentAST, returnAST);
1067                                }
1068                                else if ((LA(1)==IDENT) && (_tokenSet_6.member(LA(2)))) {
1069                                }
1070                                else {
1071                                        throw new NoViableAltException(LT(1), getFilename());
1072                                }
1073                                
1074                                }
1075                                AST tmp24_AST = null;
1076                                tmp24_AST = astFactory.create(LT(1));
1077                                astFactory.addASTChild(currentAST, tmp24_AST);
1078                                match(IDENT);
1079                                {
1080                                if ((LA(1)==LT) && (_tokenSet_6.member(LA(2)))) {
1081                                        typeArguments(addImagNode);
1082                                        astFactory.addASTChild(currentAST, returnAST);
1083                                }
1084                                else if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1085                                }
1086                                else {
1087                                        throw new NoViableAltException(LT(1), getFilename());
1088                                }
1089                                
1090                                }
1091                        }
1092                        else {
1093                                break _loop31;
1094                        }
1095                        
1096                } while (true);
1097                }
1098                classOrInterfaceType_AST = (AST)currentAST.root;
1099                returnAST = classOrInterfaceType_AST;
1100        }
1101        
1102        public final void builtInType() throws RecognitionException, TokenStreamException {
1103                
1104                returnAST = null;
1105                ASTPair currentAST = new ASTPair();
1106                AST builtInType_AST = null;
1107                
1108                switch ( LA(1)) {
1109                case LITERAL_void:
1110                {
1111                        AST tmp25_AST = null;
1112                        tmp25_AST = astFactory.create(LT(1));
1113                        astFactory.addASTChild(currentAST, tmp25_AST);
1114                        match(LITERAL_void);
1115                        builtInType_AST = (AST)currentAST.root;
1116                        break;
1117                }
1118                case LITERAL_boolean:
1119                {
1120                        AST tmp26_AST = null;
1121                        tmp26_AST = astFactory.create(LT(1));
1122                        astFactory.addASTChild(currentAST, tmp26_AST);
1123                        match(LITERAL_boolean);
1124                        builtInType_AST = (AST)currentAST.root;
1125                        break;
1126                }
1127                case LITERAL_byte:
1128                {
1129                        AST tmp27_AST = null;
1130                        tmp27_AST = astFactory.create(LT(1));
1131                        astFactory.addASTChild(currentAST, tmp27_AST);
1132                        match(LITERAL_byte);
1133                        builtInType_AST = (AST)currentAST.root;
1134                        break;
1135                }
1136                case LITERAL_char:
1137                {
1138                        AST tmp28_AST = null;
1139                        tmp28_AST = astFactory.create(LT(1));
1140                        astFactory.addASTChild(currentAST, tmp28_AST);
1141                        match(LITERAL_char);
1142                        builtInType_AST = (AST)currentAST.root;
1143                        break;
1144                }
1145                case LITERAL_short:
1146                {
1147                        AST tmp29_AST = null;
1148                        tmp29_AST = astFactory.create(LT(1));
1149                        astFactory.addASTChild(currentAST, tmp29_AST);
1150                        match(LITERAL_short);
1151                        builtInType_AST = (AST)currentAST.root;
1152                        break;
1153                }
1154                case LITERAL_int:
1155                {
1156                        AST tmp30_AST = null;
1157                        tmp30_AST = astFactory.create(LT(1));
1158                        astFactory.addASTChild(currentAST, tmp30_AST);
1159                        match(LITERAL_int);
1160                        builtInType_AST = (AST)currentAST.root;
1161                        break;
1162                }
1163                case LITERAL_float:
1164                {
1165                        AST tmp31_AST = null;
1166                        tmp31_AST = astFactory.create(LT(1));
1167                        astFactory.addASTChild(currentAST, tmp31_AST);
1168                        match(LITERAL_float);
1169                        builtInType_AST = (AST)currentAST.root;
1170                        break;
1171                }
1172                case LITERAL_long:
1173                {
1174                        AST tmp32_AST = null;
1175                        tmp32_AST = astFactory.create(LT(1));
1176                        astFactory.addASTChild(currentAST, tmp32_AST);
1177                        match(LITERAL_long);
1178                        builtInType_AST = (AST)currentAST.root;
1179                        break;
1180                }
1181                case LITERAL_double:
1182                {
1183                        AST tmp33_AST = null;
1184                        tmp33_AST = astFactory.create(LT(1));
1185                        astFactory.addASTChild(currentAST, tmp33_AST);
1186                        match(LITERAL_double);
1187                        builtInType_AST = (AST)currentAST.root;
1188                        break;
1189                }
1190                default:
1191                {
1192                        throw new NoViableAltException(LT(1), getFilename());
1193                }
1194                }
1195                returnAST = builtInType_AST;
1196        }
1197        
1198        public final void typeArguments(
1199                boolean addImagNode
1200        ) throws RecognitionException, TokenStreamException {
1201                
1202                returnAST = null;
1203                ASTPair currentAST = new ASTPair();
1204                AST typeArguments_AST = null;
1205                Token  lt = null;
1206                AST lt_AST = null;
1207                int currentLtLevel = 0;
1208                
1209                if ( inputState.guessing==0 ) {
1210                        currentLtLevel = ltCounter;
1211                }
1212                lt = LT(1);
1213                lt_AST = astFactory.create(lt);
1214                astFactory.addASTChild(currentAST, lt_AST);
1215                match(LT);
1216                if ( inputState.guessing==0 ) {
1217                        lt_AST.setType(GENERIC_START); ;ltCounter++;
1218                }
1219                {
1220                if ((_tokenSet_8.member(LA(1))) && (_tokenSet_6.member(LA(2)))) {
1221                        typeArgument(addImagNode);
1222                        astFactory.addASTChild(currentAST, returnAST);
1223                        {
1224                        _loop43:
1225                        do {
1226                                if (((LA(1)==COMMA) && (_tokenSet_8.member(LA(2))))&&(gtToReconcile == 0)) {
1227                                        AST tmp34_AST = null;
1228                                        tmp34_AST = astFactory.create(LT(1));
1229                                        astFactory.addASTChild(currentAST, tmp34_AST);
1230                                        match(COMMA);
1231                                        typeArgument(addImagNode);
1232                                        astFactory.addASTChild(currentAST, returnAST);
1233                                }
1234                                else {
1235                                        break _loop43;
1236                                }
1237                                
1238                        } while (true);
1239                        }
1240                }
1241                else if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1242                }
1243                else {
1244                        throw new NoViableAltException(LT(1), getFilename());
1245                }
1246                
1247                }
1248                {
1249                if ((_tokenSet_9.member(LA(1))) && (_tokenSet_6.member(LA(2)))) {
1250                        typeArgumentsOrParametersEnd();
1251                        astFactory.addASTChild(currentAST, returnAST);
1252                }
1253                else if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1254                }
1255                else {
1256                        throw new NoViableAltException(LT(1), getFilename());
1257                }
1258                
1259                }
1260                if ( inputState.guessing==0 ) {
1261                        
1262                        if (areThereGtsToEmit())
1263                        {
1264                        astFactory.addASTChild(currentAST, emitSingleGt());
1265                        }
1266                        
1267                }
1268                if (!(areLtsAndGtsBalanced(currentLtLevel)))
1269                  throw new SemanticException("areLtsAndGtsBalanced(currentLtLevel)");
1270                if ( inputState.guessing==0 ) {
1271                        typeArguments_AST = (AST)currentAST.root;
1272                        typeArguments_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE_ARGUMENTS,"TYPE_ARGUMENTS")).add(typeArguments_AST));
1273                        currentAST.root = typeArguments_AST;
1274                        currentAST.child = typeArguments_AST!=null &&typeArguments_AST.getFirstChild()!=null ?
1275                                typeArguments_AST.getFirstChild() : typeArguments_AST;
1276                        currentAST.advanceChildToEnd();
1277                }
1278                typeArguments_AST = (AST)currentAST.root;
1279                returnAST = typeArguments_AST;
1280        }
1281        
1282        public final void typeArgument(
1283                boolean addImagNode
1284        ) throws RecognitionException, TokenStreamException {
1285                
1286                returnAST = null;
1287                ASTPair currentAST = new ASTPair();
1288                AST typeArgument_AST = null;
1289                
1290                {
1291                {
1292                if (((_tokenSet_8.member(LA(1))) && (_tokenSet_6.member(LA(2))))&&(LA(1) == AT)) {
1293                        annotations();
1294                        astFactory.addASTChild(currentAST, returnAST);
1295                }
1296                else if ((_tokenSet_8.member(LA(1))) && (_tokenSet_6.member(LA(2)))) {
1297                }
1298                else {
1299                        throw new NoViableAltException(LT(1), getFilename());
1300                }
1301                
1302                }
1303                {
1304                switch ( LA(1)) {
1305                case IDENT:
1306                case AT:
1307                {
1308                        classTypeSpec(addImagNode);
1309                        astFactory.addASTChild(currentAST, returnAST);
1310                        break;
1311                }
1312                case LITERAL_void:
1313                case LITERAL_boolean:
1314                case LITERAL_byte:
1315                case LITERAL_char:
1316                case LITERAL_short:
1317                case LITERAL_int:
1318                case LITERAL_float:
1319                case LITERAL_long:
1320                case LITERAL_double:
1321                {
1322                        builtInTypeSpec(addImagNode);
1323                        astFactory.addASTChild(currentAST, returnAST);
1324                        break;
1325                }
1326                case QUESTION:
1327                {
1328                        wildcardType(addImagNode);
1329                        astFactory.addASTChild(currentAST, returnAST);
1330                        break;
1331                }
1332                default:
1333                {
1334                        throw new NoViableAltException(LT(1), getFilename());
1335                }
1336                }
1337                }
1338                }
1339                if ( inputState.guessing==0 ) {
1340                        typeArgument_AST = (AST)currentAST.root;
1341                        typeArgument_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE_ARGUMENT,"TYPE_ARGUMENT")).add(typeArgument_AST));
1342                        currentAST.root = typeArgument_AST;
1343                        currentAST.child = typeArgument_AST!=null &&typeArgument_AST.getFirstChild()!=null ?
1344                                typeArgument_AST.getFirstChild() : typeArgument_AST;
1345                        currentAST.advanceChildToEnd();
1346                }
1347                typeArgument_AST = (AST)currentAST.root;
1348                returnAST = typeArgument_AST;
1349        }
1350        
1351        public final void wildcardType(
1352                boolean addImagNode
1353        ) throws RecognitionException, TokenStreamException {
1354                
1355                returnAST = null;
1356                ASTPair currentAST = new ASTPair();
1357                AST wildcardType_AST = null;
1358                Token  q = null;
1359                AST q_AST = null;
1360                
1361                q = LT(1);
1362                q_AST = astFactory.create(q);
1363                astFactory.addASTChild(currentAST, q_AST);
1364                match(QUESTION);
1365                if ( inputState.guessing==0 ) {
1366                        q_AST.setType(WILDCARD_TYPE);
1367                }
1368                {
1369                boolean synPredMatched39 = false;
1370                if (((LA(1)==LITERAL_extends||LA(1)==LITERAL_super) && (_tokenSet_10.member(LA(2))))) {
1371                        int _m39 = mark();
1372                        synPredMatched39 = true;
1373                        inputState.guessing++;
1374                        try {
1375                                {
1376                                switch ( LA(1)) {
1377                                case LITERAL_extends:
1378                                {
1379                                        match(LITERAL_extends);
1380                                        break;
1381                                }
1382                                case LITERAL_super:
1383                                {
1384                                        match(LITERAL_super);
1385                                        break;
1386                                }
1387                                default:
1388                                {
1389                                        throw new NoViableAltException(LT(1), getFilename());
1390                                }
1391                                }
1392                                }
1393                        }
1394                        catch (RecognitionException pe) {
1395                                synPredMatched39 = false;
1396                        }
1397                        rewind(_m39);
1398inputState.guessing--;
1399                }
1400                if ( synPredMatched39 ) {
1401                        typeArgumentBounds(addImagNode);
1402                        astFactory.addASTChild(currentAST, returnAST);
1403                }
1404                else if ((_tokenSet_6.member(LA(1))) && (_tokenSet_7.member(LA(2)))) {
1405                }
1406                else {
1407                        throw new NoViableAltException(LT(1), getFilename());
1408                }
1409                
1410                }
1411                wildcardType_AST = (AST)currentAST.root;
1412                returnAST = wildcardType_AST;
1413        }
1414        
1415        public final void typeArgumentBounds(
1416                boolean addImagNode
1417        ) throws RecognitionException, TokenStreamException {
1418                
1419                returnAST = null;
1420                ASTPair currentAST = new ASTPair();
1421                AST typeArgumentBounds_AST = null;
1422                Token  e = null;
1423                AST e_AST = null;
1424                Token  s = null;
1425                AST s_AST = null;
1426                Token  lb = null;
1427                AST lb_AST = null;
1428                
1429                {
1430                switch ( LA(1)) {
1431                case LITERAL_extends:
1432                {
1433                        e = LT(1);
1434                        e_AST = astFactory.create(e);
1435                        astFactory.makeASTRoot(currentAST, e_AST);
1436                        match(LITERAL_extends);
1437                        if ( inputState.guessing==0 ) {
1438                                e_AST.setType(TYPE_UPPER_BOUNDS);
1439                        }
1440                        break;
1441                }
1442                case LITERAL_super:
1443                {
1444                        s = LT(1);
1445                        s_AST = astFactory.create(s);
1446                        astFactory.makeASTRoot(currentAST, s_AST);
1447                        match(LITERAL_super);
1448                        if ( inputState.guessing==0 ) {
1449                                s_AST.setType(TYPE_LOWER_BOUNDS);
1450                        }
1451                        break;
1452                }
1453                default:
1454                {
1455                        throw new NoViableAltException(LT(1), getFilename());
1456                }
1457                }
1458                }
1459                {
1460                switch ( LA(1)) {
1461                case IDENT:
1462                case AT:
1463                {
1464                        classOrInterfaceType(addImagNode);
1465                        astFactory.addASTChild(currentAST, returnAST);
1466                        break;
1467                }
1468                case LITERAL_void:
1469                case LITERAL_boolean:
1470                case LITERAL_byte:
1471                case LITERAL_char:
1472                case LITERAL_short:
1473                case LITERAL_int:
1474                case LITERAL_float:
1475                case LITERAL_long:
1476                case LITERAL_double:
1477                {
1478                        builtInType();
1479                        astFactory.addASTChild(currentAST, returnAST);
1480                        break;
1481                }
1482                default:
1483                {
1484                        throw new NoViableAltException(LT(1), getFilename());
1485                }
1486                }
1487                }
1488                {
1489                _loop50:
1490                do {
1491                        if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
1492                                lb = LT(1);
1493                                lb_AST = astFactory.create(lb);
1494                                astFactory.makeASTRoot(currentAST, lb_AST);
1495                                match(LBRACK);
1496                                if ( inputState.guessing==0 ) {
1497                                        lb_AST.setType(ARRAY_DECLARATOR);
1498                                }
1499                                AST tmp35_AST = null;
1500                                tmp35_AST = astFactory.create(LT(1));
1501                                astFactory.addASTChild(currentAST, tmp35_AST);
1502                                match(RBRACK);
1503                        }
1504                        else {
1505                                break _loop50;
1506                        }
1507                        
1508                } while (true);
1509                }
1510                typeArgumentBounds_AST = (AST)currentAST.root;
1511                returnAST = typeArgumentBounds_AST;
1512        }
1513        
1514        protected final void typeArgumentsOrParametersEnd() throws RecognitionException, TokenStreamException {
1515                
1516                returnAST = null;
1517                ASTPair currentAST = new ASTPair();
1518                AST typeArgumentsOrParametersEnd_AST = null;
1519                Token  g = null;
1520                AST g_AST = null;
1521                Token  sr = null;
1522                AST sr_AST = null;
1523                Token  bsr = null;
1524                AST bsr_AST = null;
1525                
1526                switch ( LA(1)) {
1527                case GT:
1528                {
1529                        g = LT(1);
1530                        g_AST = astFactory.create(g);
1531                        match(GT);
1532                        if ( inputState.guessing==0 ) {
1533                                consumeCurrentGtSequence((DetailAstImpl)g_AST);
1534                        }
1535                        break;
1536                }
1537                case SR:
1538                {
1539                        sr = LT(1);
1540                        sr_AST = astFactory.create(sr);
1541                        match(SR);
1542                        if ( inputState.guessing==0 ) {
1543                                consumeCurrentGtSequence((DetailAstImpl)sr_AST);
1544                        }
1545                        break;
1546                }
1547                case BSR:
1548                {
1549                        bsr = LT(1);
1550                        bsr_AST = astFactory.create(bsr);
1551                        match(BSR);
1552                        if ( inputState.guessing==0 ) {
1553                                consumeCurrentGtSequence((DetailAstImpl)bsr_AST);
1554                        }
1555                        break;
1556                }
1557                default:
1558                {
1559                        throw new NoViableAltException(LT(1), getFilename());
1560                }
1561                }
1562                returnAST = typeArgumentsOrParametersEnd_AST;
1563        }
1564        
1565        public final void type() throws RecognitionException, TokenStreamException {
1566                
1567                returnAST = null;
1568                ASTPair currentAST = new ASTPair();
1569                AST type_AST = null;
1570                
1571                {
1572                if (((_tokenSet_10.member(LA(1))) && (_tokenSet_11.member(LA(2))))&&(LA(1) == AT)) {
1573                        annotations();
1574                        astFactory.addASTChild(currentAST, returnAST);
1575                }
1576                else if ((_tokenSet_10.member(LA(1))) && (_tokenSet_11.member(LA(2)))) {
1577                }
1578                else {
1579                        throw new NoViableAltException(LT(1), getFilename());
1580                }
1581                
1582                }
1583                {
1584                switch ( LA(1)) {
1585                case IDENT:
1586                case AT:
1587                {
1588                        classOrInterfaceType(false);
1589                        astFactory.addASTChild(currentAST, returnAST);
1590                        break;
1591                }
1592                case LITERAL_void:
1593                case LITERAL_boolean:
1594                case LITERAL_byte:
1595                case LITERAL_char:
1596                case LITERAL_short:
1597                case LITERAL_int:
1598                case LITERAL_float:
1599                case LITERAL_long:
1600                case LITERAL_double:
1601                {
1602                        builtInType();
1603                        astFactory.addASTChild(currentAST, returnAST);
1604                        break;
1605                }
1606                default:
1607                {
1608                        throw new NoViableAltException(LT(1), getFilename());
1609                }
1610                }
1611                }
1612                type_AST = (AST)currentAST.root;
1613                returnAST = type_AST;
1614        }
1615        
1616/** A declaration is the creation of a reference or primitive-type variable
1617 *  Create a separate Type/Var tree for each var in the var list.
1618    @throws RecognitionException if recognition problem occurs.
1619    @throws TokenStreamException if problem occurs while generating a stream of tokens.
1620 */
1621        public final void declaration() throws RecognitionException, TokenStreamException {
1622                
1623                returnAST = null;
1624                ASTPair currentAST = new ASTPair();
1625                AST declaration_AST = null;
1626                AST m_AST = null;
1627                AST t_AST = null;
1628                AST v_AST = null;
1629                
1630                modifiers();
1631                m_AST = (AST)returnAST;
1632                typeSpec(false);
1633                t_AST = (AST)returnAST;
1634                variableDefinitions(m_AST,t_AST);
1635                v_AST = (AST)returnAST;
1636                if ( inputState.guessing==0 ) {
1637                        declaration_AST = (AST)currentAST.root;
1638                        declaration_AST = v_AST;
1639                        currentAST.root = declaration_AST;
1640                        currentAST.child = declaration_AST!=null &&declaration_AST.getFirstChild()!=null ?
1641                                declaration_AST.getFirstChild() : declaration_AST;
1642                        currentAST.advanceChildToEnd();
1643                }
1644                returnAST = declaration_AST;
1645        }
1646        
1647        public final void variableDefinitions(
1648                AST mods, AST t
1649        ) throws RecognitionException, TokenStreamException {
1650                
1651                returnAST = null;
1652                ASTPair currentAST = new ASTPair();
1653                AST variableDefinitions_AST = null;
1654                
1655                variableDeclarator((AST) getASTFactory().dupTree(mods),
1656                           //dupList as this also copies siblings (like TYPE_ARGUMENTS)
1657                           (AST) getASTFactory().dupList(t));
1658                astFactory.addASTChild(currentAST, returnAST);
1659                {
1660                _loop173:
1661                do {
1662                        if ((LA(1)==COMMA)) {
1663                                AST tmp36_AST = null;
1664                                tmp36_AST = astFactory.create(LT(1));
1665                                astFactory.addASTChild(currentAST, tmp36_AST);
1666                                match(COMMA);
1667                                variableDeclarator((AST) getASTFactory().dupTree(mods),
1668                               //dupList as this also copies siblings (like TYPE_ARGUMENTS)
1669                               (AST) getASTFactory().dupList(t));
1670                                astFactory.addASTChild(currentAST, returnAST);
1671                        }
1672                        else {
1673                                break _loop173;
1674                        }
1675                        
1676                } while (true);
1677                }
1678                variableDefinitions_AST = (AST)currentAST.root;
1679                returnAST = variableDefinitions_AST;
1680        }
1681        
1682        public final void modifier() throws RecognitionException, TokenStreamException {
1683                
1684                returnAST = null;
1685                ASTPair currentAST = new ASTPair();
1686                AST modifier_AST = null;
1687                
1688                switch ( LA(1)) {
1689                case LITERAL_private:
1690                {
1691                        AST tmp37_AST = null;
1692                        tmp37_AST = astFactory.create(LT(1));
1693                        astFactory.addASTChild(currentAST, tmp37_AST);
1694                        match(LITERAL_private);
1695                        modifier_AST = (AST)currentAST.root;
1696                        break;
1697                }
1698                case LITERAL_public:
1699                {
1700                        AST tmp38_AST = null;
1701                        tmp38_AST = astFactory.create(LT(1));
1702                        astFactory.addASTChild(currentAST, tmp38_AST);
1703                        match(LITERAL_public);
1704                        modifier_AST = (AST)currentAST.root;
1705                        break;
1706                }
1707                case LITERAL_protected:
1708                {
1709                        AST tmp39_AST = null;
1710                        tmp39_AST = astFactory.create(LT(1));
1711                        astFactory.addASTChild(currentAST, tmp39_AST);
1712                        match(LITERAL_protected);
1713                        modifier_AST = (AST)currentAST.root;
1714                        break;
1715                }
1716                case LITERAL_static:
1717                {
1718                        AST tmp40_AST = null;
1719                        tmp40_AST = astFactory.create(LT(1));
1720                        astFactory.addASTChild(currentAST, tmp40_AST);
1721                        match(LITERAL_static);
1722                        modifier_AST = (AST)currentAST.root;
1723                        break;
1724                }
1725                case LITERAL_transient:
1726                {
1727                        AST tmp41_AST = null;
1728                        tmp41_AST = astFactory.create(LT(1));
1729                        astFactory.addASTChild(currentAST, tmp41_AST);
1730                        match(LITERAL_transient);
1731                        modifier_AST = (AST)currentAST.root;
1732                        break;
1733                }
1734                case FINAL:
1735                {
1736                        AST tmp42_AST = null;
1737                        tmp42_AST = astFactory.create(LT(1));
1738                        astFactory.addASTChild(currentAST, tmp42_AST);
1739                        match(FINAL);
1740                        modifier_AST = (AST)currentAST.root;
1741                        break;
1742                }
1743                case ABSTRACT:
1744                {
1745                        AST tmp43_AST = null;
1746                        tmp43_AST = astFactory.create(LT(1));
1747                        astFactory.addASTChild(currentAST, tmp43_AST);
1748                        match(ABSTRACT);
1749                        modifier_AST = (AST)currentAST.root;
1750                        break;
1751                }
1752                case LITERAL_native:
1753                {
1754                        AST tmp44_AST = null;
1755                        tmp44_AST = astFactory.create(LT(1));
1756                        astFactory.addASTChild(currentAST, tmp44_AST);
1757                        match(LITERAL_native);
1758                        modifier_AST = (AST)currentAST.root;
1759                        break;
1760                }
1761                case LITERAL_synchronized:
1762                {
1763                        AST tmp45_AST = null;
1764                        tmp45_AST = astFactory.create(LT(1));
1765                        astFactory.addASTChild(currentAST, tmp45_AST);
1766                        match(LITERAL_synchronized);
1767                        modifier_AST = (AST)currentAST.root;
1768                        break;
1769                }
1770                case LITERAL_volatile:
1771                {
1772                        AST tmp46_AST = null;
1773                        tmp46_AST = astFactory.create(LT(1));
1774                        astFactory.addASTChild(currentAST, tmp46_AST);
1775                        match(LITERAL_volatile);
1776                        modifier_AST = (AST)currentAST.root;
1777                        break;
1778                }
1779                case STRICTFP:
1780                {
1781                        AST tmp47_AST = null;
1782                        tmp47_AST = astFactory.create(LT(1));
1783                        astFactory.addASTChild(currentAST, tmp47_AST);
1784                        match(STRICTFP);
1785                        modifier_AST = (AST)currentAST.root;
1786                        break;
1787                }
1788                case LITERAL_default:
1789                {
1790                        AST tmp48_AST = null;
1791                        tmp48_AST = astFactory.create(LT(1));
1792                        astFactory.addASTChild(currentAST, tmp48_AST);
1793                        match(LITERAL_default);
1794                        modifier_AST = (AST)currentAST.root;
1795                        break;
1796                }
1797                default:
1798                {
1799                        throw new NoViableAltException(LT(1), getFilename());
1800                }
1801                }
1802                returnAST = modifier_AST;
1803        }
1804        
1805        public final void annotation() throws RecognitionException, TokenStreamException {
1806                
1807                returnAST = null;
1808                ASTPair currentAST = new ASTPair();
1809                AST annotation_AST = null;
1810                AST i_AST = null;
1811                Token  l = null;
1812                AST l_AST = null;
1813                AST args_AST = null;
1814                Token  r = null;
1815                AST r_AST = null;
1816                
1817                AST tmp49_AST = null;
1818                tmp49_AST = astFactory.create(LT(1));
1819                match(AT);
1820                identifier();
1821                i_AST = (AST)returnAST;
1822                {
1823                switch ( LA(1)) {
1824                case LPAREN:
1825                {
1826                        l = LT(1);
1827                        l_AST = astFactory.create(l);
1828                        match(LPAREN);
1829                        {
1830                        switch ( LA(1)) {
1831                        case LITERAL_void:
1832                        case LITERAL_boolean:
1833                        case LITERAL_byte:
1834                        case LITERAL_char:
1835                        case LITERAL_short:
1836                        case LITERAL_int:
1837                        case LITERAL_float:
1838                        case LITERAL_long:
1839                        case LITERAL_double:
1840                        case IDENT:
1841                        case LCURLY:
1842                        case LPAREN:
1843                        case LITERAL_this:
1844                        case LITERAL_super:
1845                        case PLUS:
1846                        case MINUS:
1847                        case INC:
1848                        case DEC:
1849                        case BNOT:
1850                        case LNOT:
1851                        case LITERAL_true:
1852                        case LITERAL_false:
1853                        case LITERAL_null:
1854                        case LITERAL_new:
1855                        case NUM_INT:
1856                        case CHAR_LITERAL:
1857                        case STRING_LITERAL:
1858                        case NUM_FLOAT:
1859                        case NUM_LONG:
1860                        case NUM_DOUBLE:
1861                        case AT:
1862                        {
1863                                annotationArguments();
1864                                args_AST = (AST)returnAST;
1865                                break;
1866                        }
1867                        case RPAREN:
1868                        {
1869                                break;
1870                        }
1871                        default:
1872                        {
1873                                throw new NoViableAltException(LT(1), getFilename());
1874                        }
1875                        }
1876                        }
1877                        r = LT(1);
1878                        r_AST = astFactory.create(r);
1879                        match(RPAREN);
1880                        break;
1881                }
1882                case FINAL:
1883                case ABSTRACT:
1884                case STRICTFP:
1885                case LITERAL_package:
1886                case SEMI:
1887                case LBRACK:
1888                case LITERAL_void:
1889                case LITERAL_boolean:
1890                case LITERAL_byte:
1891                case LITERAL_char:
1892                case LITERAL_short:
1893                case LITERAL_int:
1894                case LITERAL_float:
1895                case LITERAL_long:
1896                case LITERAL_double:
1897                case IDENT:
1898                case LITERAL_private:
1899                case LITERAL_public:
1900                case LITERAL_protected:
1901                case LITERAL_static:
1902                case LITERAL_transient:
1903                case LITERAL_native:
1904                case LITERAL_synchronized:
1905                case LITERAL_volatile:
1906                case LITERAL_class:
1907                case LITERAL_interface:
1908                case RCURLY:
1909                case COMMA:
1910                case RPAREN:
1911                case LITERAL_this:
1912                case LITERAL_default:
1913                case QUESTION:
1914                case LT:
1915                case ENUM:
1916                case AT:
1917                case ELLIPSIS:
1918                {
1919                        break;
1920                }
1921                default:
1922                {
1923                        throw new NoViableAltException(LT(1), getFilename());
1924                }
1925                }
1926                }
1927                if ( inputState.guessing==0 ) {
1928                        annotation_AST = (AST)currentAST.root;
1929                        annotation_AST = (AST)astFactory.make( (new ASTArray(6)).add(astFactory.create(ANNOTATION,"ANNOTATION")).add(tmp49_AST).add(i_AST).add(l_AST).add(args_AST).add(r_AST));
1930                        currentAST.root = annotation_AST;
1931                        currentAST.child = annotation_AST!=null &&annotation_AST.getFirstChild()!=null ?
1932                                annotation_AST.getFirstChild() : annotation_AST;
1933                        currentAST.advanceChildToEnd();
1934                }
1935                returnAST = annotation_AST;
1936        }
1937        
1938        public final void annotationArguments() throws RecognitionException, TokenStreamException {
1939                
1940                returnAST = null;
1941                ASTPair currentAST = new ASTPair();
1942                AST annotationArguments_AST = null;
1943                
1944                if ((_tokenSet_12.member(LA(1))) && (_tokenSet_13.member(LA(2)))) {
1945                        annotationMemberValueInitializer();
1946                        astFactory.addASTChild(currentAST, returnAST);
1947                        annotationArguments_AST = (AST)currentAST.root;
1948                }
1949                else if ((LA(1)==IDENT) && (LA(2)==ASSIGN)) {
1950                        annotationMemberValuePairs();
1951                        astFactory.addASTChild(currentAST, returnAST);
1952                        annotationArguments_AST = (AST)currentAST.root;
1953                }
1954                else {
1955                        throw new NoViableAltException(LT(1), getFilename());
1956                }
1957                
1958                returnAST = annotationArguments_AST;
1959        }
1960        
1961        public final void annotationMemberValueInitializer() throws RecognitionException, TokenStreamException {
1962                
1963                returnAST = null;
1964                ASTPair currentAST = new ASTPair();
1965                AST annotationMemberValueInitializer_AST = null;
1966                
1967                boolean synPredMatched84 = false;
1968                if (((_tokenSet_14.member(LA(1))) && (_tokenSet_15.member(LA(2))))) {
1969                        int _m84 = mark();
1970                        synPredMatched84 = true;
1971                        inputState.guessing++;
1972                        try {
1973                                {
1974                                annotationExpression();
1975                                }
1976                        }
1977                        catch (RecognitionException pe) {
1978                                synPredMatched84 = false;
1979                        }
1980                        rewind(_m84);
1981inputState.guessing--;
1982                }
1983                if ( synPredMatched84 ) {
1984                        annotationExpression();
1985                        astFactory.addASTChild(currentAST, returnAST);
1986                        annotationMemberValueInitializer_AST = (AST)currentAST.root;
1987                }
1988                else if ((LA(1)==AT) && (LA(2)==IDENT)) {
1989                        annotation();
1990                        astFactory.addASTChild(currentAST, returnAST);
1991                        annotationMemberValueInitializer_AST = (AST)currentAST.root;
1992                }
1993                else if ((LA(1)==LCURLY)) {
1994                        annotationMemberArrayInitializer();
1995                        astFactory.addASTChild(currentAST, returnAST);
1996                        annotationMemberValueInitializer_AST = (AST)currentAST.root;
1997                }
1998                else {
1999                        throw new NoViableAltException(LT(1), getFilename());
2000                }
2001                
2002                returnAST = annotationMemberValueInitializer_AST;
2003        }
2004        
2005        public final void annotationMemberValuePairs() throws RecognitionException, TokenStreamException {
2006                
2007                returnAST = null;
2008                ASTPair currentAST = new ASTPair();
2009                AST annotationMemberValuePairs_AST = null;
2010                
2011                annotationMemberValuePair();
2012                astFactory.addASTChild(currentAST, returnAST);
2013                {
2014                _loop80:
2015                do {
2016                        if ((LA(1)==COMMA)) {
2017                                AST tmp50_AST = null;
2018                                tmp50_AST = astFactory.create(LT(1));
2019                                astFactory.addASTChild(currentAST, tmp50_AST);
2020                                match(COMMA);
2021                                annotationMemberValuePair();
2022                                astFactory.addASTChild(currentAST, returnAST);
2023                        }
2024                        else {
2025                                break _loop80;
2026                        }
2027                        
2028                } while (true);
2029                }
2030                annotationMemberValuePairs_AST = (AST)currentAST.root;
2031                returnAST = annotationMemberValuePairs_AST;
2032        }
2033        
2034        public final void annotationMemberValuePair() throws RecognitionException, TokenStreamException {
2035                
2036                returnAST = null;
2037                ASTPair currentAST = new ASTPair();
2038                AST annotationMemberValuePair_AST = null;
2039                Token  i = null;
2040                AST i_AST = null;
2041                Token  a = null;
2042                AST a_AST = null;
2043                AST v_AST = null;
2044                
2045                i = LT(1);
2046                i_AST = astFactory.create(i);
2047                match(IDENT);
2048                a = LT(1);
2049                a_AST = astFactory.create(a);
2050                match(ASSIGN);
2051                annotationMemberValueInitializer();
2052                v_AST = (AST)returnAST;
2053                if ( inputState.guessing==0 ) {
2054                        annotationMemberValuePair_AST = (AST)currentAST.root;
2055                        annotationMemberValuePair_AST =
2056                        (AST)astFactory.make( (new ASTArray(4)).add(astFactory.create(ANNOTATION_MEMBER_VALUE_PAIR,"ANNOTATION_MEMBER_VALUE_PAIR")).add(i_AST).add(a_AST).add(v_AST));
2057                        currentAST.root = annotationMemberValuePair_AST;
2058                        currentAST.child = annotationMemberValuePair_AST!=null &&annotationMemberValuePair_AST.getFirstChild()!=null ?
2059                                annotationMemberValuePair_AST.getFirstChild() : annotationMemberValuePair_AST;
2060                        currentAST.advanceChildToEnd();
2061                }
2062                returnAST = annotationMemberValuePair_AST;
2063        }
2064        
2065        public final void annotationExpression() throws RecognitionException, TokenStreamException {
2066                
2067                returnAST = null;
2068                ASTPair currentAST = new ASTPair();
2069                AST annotationExpression_AST = null;
2070                
2071                conditionalExpression();
2072                astFactory.addASTChild(currentAST, returnAST);
2073                if ( inputState.guessing==0 ) {
2074                        annotationExpression_AST = (AST)currentAST.root;
2075                        annotationExpression_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(EXPR,"EXPR")).add(annotationExpression_AST));
2076                        currentAST.root = annotationExpression_AST;
2077                        currentAST.child = annotationExpression_AST!=null &&annotationExpression_AST.getFirstChild()!=null ?
2078                                annotationExpression_AST.getFirstChild() : annotationExpression_AST;
2079                        currentAST.advanceChildToEnd();
2080                }
2081                annotationExpression_AST = (AST)currentAST.root;
2082                returnAST = annotationExpression_AST;
2083        }
2084        
2085        public final void annotationMemberArrayInitializer() throws RecognitionException, TokenStreamException {
2086                
2087                returnAST = null;
2088                ASTPair currentAST = new ASTPair();
2089                AST annotationMemberArrayInitializer_AST = null;
2090                Token  lc = null;
2091                AST lc_AST = null;
2092                
2093                lc = LT(1);
2094                lc_AST = astFactory.create(lc);
2095                astFactory.makeASTRoot(currentAST, lc_AST);
2096                match(LCURLY);
2097                if ( inputState.guessing==0 ) {
2098                        lc_AST.setType(ANNOTATION_ARRAY_INIT);
2099                }
2100                {
2101                switch ( LA(1)) {
2102                case LITERAL_void:
2103                case LITERAL_boolean:
2104                case LITERAL_byte:
2105                case LITERAL_char:
2106                case LITERAL_short:
2107                case LITERAL_int:
2108                case LITERAL_float:
2109                case LITERAL_long:
2110                case LITERAL_double:
2111                case IDENT:
2112                case LPAREN:
2113                case LITERAL_this:
2114                case LITERAL_super:
2115                case PLUS:
2116                case MINUS:
2117                case INC:
2118                case DEC:
2119                case BNOT:
2120                case LNOT:
2121                case LITERAL_true:
2122                case LITERAL_false:
2123                case LITERAL_null:
2124                case LITERAL_new:
2125                case NUM_INT:
2126                case CHAR_LITERAL:
2127                case STRING_LITERAL:
2128                case NUM_FLOAT:
2129                case NUM_LONG:
2130                case NUM_DOUBLE:
2131                case AT:
2132                {
2133                        annotationMemberArrayValueInitializer();
2134                        astFactory.addASTChild(currentAST, returnAST);
2135                        {
2136                        _loop88:
2137                        do {
2138                                if ((LA(1)==COMMA) && (_tokenSet_14.member(LA(2)))) {
2139                                        AST tmp51_AST = null;
2140                                        tmp51_AST = astFactory.create(LT(1));
2141                                        astFactory.addASTChild(currentAST, tmp51_AST);
2142                                        match(COMMA);
2143                                        annotationMemberArrayValueInitializer();
2144                                        astFactory.addASTChild(currentAST, returnAST);
2145                                }
2146                                else {
2147                                        break _loop88;
2148                                }
2149                                
2150                        } while (true);
2151                        }
2152                        {
2153                        switch ( LA(1)) {
2154                        case COMMA:
2155                        {
2156                                AST tmp52_AST = null;
2157                                tmp52_AST = astFactory.create(LT(1));
2158                                astFactory.addASTChild(currentAST, tmp52_AST);
2159                                match(COMMA);
2160                                break;
2161                        }
2162                        case RCURLY:
2163                        {
2164                                break;
2165                        }
2166                        default:
2167                        {
2168                                throw new NoViableAltException(LT(1), getFilename());
2169                        }
2170                        }
2171                        }
2172                        break;
2173                }
2174                case RCURLY:
2175                {
2176                        break;
2177                }
2178                default:
2179                {
2180                        throw new NoViableAltException(LT(1), getFilename());
2181                }
2182                }
2183                }
2184                AST tmp53_AST = null;
2185                tmp53_AST = astFactory.create(LT(1));
2186                astFactory.addASTChild(currentAST, tmp53_AST);
2187                match(RCURLY);
2188                annotationMemberArrayInitializer_AST = (AST)currentAST.root;
2189                returnAST = annotationMemberArrayInitializer_AST;
2190        }
2191        
2192        public final void annotationMemberArrayValueInitializer() throws RecognitionException, TokenStreamException {
2193                
2194                returnAST = null;
2195                ASTPair currentAST = new ASTPair();
2196                AST annotationMemberArrayValueInitializer_AST = null;
2197                
2198                boolean synPredMatched92 = false;
2199                if (((_tokenSet_14.member(LA(1))) && (_tokenSet_16.member(LA(2))))) {
2200                        int _m92 = mark();
2201                        synPredMatched92 = true;
2202                        inputState.guessing++;
2203                        try {
2204                                {
2205                                annotationExpression();
2206                                }
2207                        }
2208                        catch (RecognitionException pe) {
2209                                synPredMatched92 = false;
2210                        }
2211                        rewind(_m92);
2212inputState.guessing--;
2213                }
2214                if ( synPredMatched92 ) {
2215                        annotationExpression();
2216                        astFactory.addASTChild(currentAST, returnAST);
2217                        annotationMemberArrayValueInitializer_AST = (AST)currentAST.root;
2218                }
2219                else if ((LA(1)==AT) && (LA(2)==IDENT)) {
2220                        annotation();
2221                        astFactory.addASTChild(currentAST, returnAST);
2222                        annotationMemberArrayValueInitializer_AST = (AST)currentAST.root;
2223                }
2224                else {
2225                        throw new NoViableAltException(LT(1), getFilename());
2226                }
2227                
2228                returnAST = annotationMemberArrayValueInitializer_AST;
2229        }
2230        
2231        public final void conditionalExpression() throws RecognitionException, TokenStreamException {
2232                
2233                returnAST = null;
2234                ASTPair currentAST = new ASTPair();
2235                AST conditionalExpression_AST = null;
2236                
2237                logicalOrExpression();
2238                astFactory.addASTChild(currentAST, returnAST);
2239                {
2240                switch ( LA(1)) {
2241                case QUESTION:
2242                {
2243                        AST tmp54_AST = null;
2244                        tmp54_AST = astFactory.create(LT(1));
2245                        astFactory.makeASTRoot(currentAST, tmp54_AST);
2246                        match(QUESTION);
2247                        {
2248                        boolean synPredMatched296 = false;
2249                        if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
2250                                int _m296 = mark();
2251                                synPredMatched296 = true;
2252                                inputState.guessing++;
2253                                try {
2254                                        {
2255                                        lambdaExpression();
2256                                        }
2257                                }
2258                                catch (RecognitionException pe) {
2259                                        synPredMatched296 = false;
2260                                }
2261                                rewind(_m296);
2262inputState.guessing--;
2263                        }
2264                        if ( synPredMatched296 ) {
2265                                lambdaExpression();
2266                                astFactory.addASTChild(currentAST, returnAST);
2267                        }
2268                        else if ((_tokenSet_14.member(LA(1))) && (_tokenSet_18.member(LA(2)))) {
2269                                assignmentExpression();
2270                                astFactory.addASTChild(currentAST, returnAST);
2271                        }
2272                        else {
2273                                throw new NoViableAltException(LT(1), getFilename());
2274                        }
2275                        
2276                        }
2277                        AST tmp55_AST = null;
2278                        tmp55_AST = astFactory.create(LT(1));
2279                        astFactory.addASTChild(currentAST, tmp55_AST);
2280                        match(COLON);
2281                        {
2282                        boolean synPredMatched299 = false;
2283                        if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
2284                                int _m299 = mark();
2285                                synPredMatched299 = true;
2286                                inputState.guessing++;
2287                                try {
2288                                        {
2289                                        lambdaExpression();
2290                                        }
2291                                }
2292                                catch (RecognitionException pe) {
2293                                        synPredMatched299 = false;
2294                                }
2295                                rewind(_m299);
2296inputState.guessing--;
2297                        }
2298                        if ( synPredMatched299 ) {
2299                                lambdaExpression();
2300                                astFactory.addASTChild(currentAST, returnAST);
2301                        }
2302                        else if ((_tokenSet_14.member(LA(1))) && (_tokenSet_19.member(LA(2)))) {
2303                                conditionalExpression();
2304                                astFactory.addASTChild(currentAST, returnAST);
2305                        }
2306                        else {
2307                                throw new NoViableAltException(LT(1), getFilename());
2308                        }
2309                        
2310                        }
2311                        break;
2312                }
2313                case FINAL:
2314                case ABSTRACT:
2315                case STRICTFP:
2316                case SEMI:
2317                case RBRACK:
2318                case LITERAL_void:
2319                case LITERAL_boolean:
2320                case LITERAL_byte:
2321                case LITERAL_char:
2322                case LITERAL_short:
2323                case LITERAL_int:
2324                case LITERAL_float:
2325                case LITERAL_long:
2326                case LITERAL_double:
2327                case IDENT:
2328                case STAR:
2329                case LITERAL_private:
2330                case LITERAL_public:
2331                case LITERAL_protected:
2332                case LITERAL_static:
2333                case LITERAL_transient:
2334                case LITERAL_native:
2335                case LITERAL_synchronized:
2336                case LITERAL_volatile:
2337                case LITERAL_class:
2338                case LITERAL_interface:
2339                case LCURLY:
2340                case RCURLY:
2341                case COMMA:
2342                case LPAREN:
2343                case RPAREN:
2344                case LITERAL_this:
2345                case LITERAL_super:
2346                case ASSIGN:
2347                case COLON:
2348                case LITERAL_if:
2349                case LITERAL_while:
2350                case LITERAL_do:
2351                case LITERAL_break:
2352                case LITERAL_continue:
2353                case LITERAL_return:
2354                case LITERAL_switch:
2355                case LITERAL_throw:
2356                case LITERAL_for:
2357                case LITERAL_else:
2358                case LITERAL_case:
2359                case LITERAL_default:
2360                case LITERAL_try:
2361                case PLUS_ASSIGN:
2362                case MINUS_ASSIGN:
2363                case STAR_ASSIGN:
2364                case DIV_ASSIGN:
2365                case MOD_ASSIGN:
2366                case SR_ASSIGN:
2367                case BSR_ASSIGN:
2368                case SL_ASSIGN:
2369                case BAND_ASSIGN:
2370                case BXOR_ASSIGN:
2371                case BOR_ASSIGN:
2372                case LT:
2373                case GT:
2374                case LE:
2375                case GE:
2376                case LITERAL_instanceof:
2377                case SL:
2378                case SR:
2379                case BSR:
2380                case PLUS:
2381                case MINUS:
2382                case DIV:
2383                case MOD:
2384                case INC:
2385                case DEC:
2386                case BNOT:
2387                case LNOT:
2388                case LITERAL_true:
2389                case LITERAL_false:
2390                case LITERAL_null:
2391                case LITERAL_new:
2392                case NUM_INT:
2393                case CHAR_LITERAL:
2394                case STRING_LITERAL:
2395                case NUM_FLOAT:
2396                case NUM_LONG:
2397                case NUM_DOUBLE:
2398                case ASSERT:
2399                case ENUM:
2400                case AT:
2401                {
2402                        break;
2403                }
2404                default:
2405                {
2406                        throw new NoViableAltException(LT(1), getFilename());
2407                }
2408                }
2409                }
2410                conditionalExpression_AST = (AST)currentAST.root;
2411                returnAST = conditionalExpression_AST;
2412        }
2413        
2414        public final void typeParameters() throws RecognitionException, TokenStreamException {
2415                
2416                returnAST = null;
2417                ASTPair currentAST = new ASTPair();
2418                AST typeParameters_AST = null;
2419                Token  lt = null;
2420                AST lt_AST = null;
2421                int currentLtLevel = 0;
2422                
2423                if ( inputState.guessing==0 ) {
2424                        currentLtLevel = ltCounter;
2425                }
2426                lt = LT(1);
2427                lt_AST = astFactory.create(lt);
2428                astFactory.addASTChild(currentAST, lt_AST);
2429                match(LT);
2430                if ( inputState.guessing==0 ) {
2431                        lt_AST.setType(GENERIC_START); ltCounter++;
2432                }
2433                typeParameter();
2434                astFactory.addASTChild(currentAST, returnAST);
2435                {
2436                _loop104:
2437                do {
2438                        if ((LA(1)==COMMA)) {
2439                                AST tmp56_AST = null;
2440                                tmp56_AST = astFactory.create(LT(1));
2441                                astFactory.addASTChild(currentAST, tmp56_AST);
2442                                match(COMMA);
2443                                typeParameter();
2444                                astFactory.addASTChild(currentAST, returnAST);
2445                        }
2446                        else {
2447                                break _loop104;
2448                        }
2449                        
2450                } while (true);
2451                }
2452                {
2453                switch ( LA(1)) {
2454                case GT:
2455                case SR:
2456                case BSR:
2457                {
2458                        typeArgumentsOrParametersEnd();
2459                        astFactory.addASTChild(currentAST, returnAST);
2460                        break;
2461                }
2462                case LITERAL_void:
2463                case LITERAL_boolean:
2464                case LITERAL_byte:
2465                case LITERAL_char:
2466                case LITERAL_short:
2467                case LITERAL_int:
2468                case LITERAL_float:
2469                case LITERAL_long:
2470                case LITERAL_double:
2471                case IDENT:
2472                case LITERAL_extends:
2473                case LCURLY:
2474                case LITERAL_implements:
2475                case AT:
2476                {
2477                        break;
2478                }
2479                default:
2480                {
2481                        throw new NoViableAltException(LT(1), getFilename());
2482                }
2483                }
2484                }
2485                if ( inputState.guessing==0 ) {
2486                        
2487                        if (isThereASingleGtToEmit()) {
2488                        astFactory.addASTChild(currentAST, emitSingleGt());
2489                        }
2490                        
2491                }
2492                if (!(areLtsAndGtsBalanced(currentLtLevel)))
2493                  throw new SemanticException("areLtsAndGtsBalanced(currentLtLevel)");
2494                if ( inputState.guessing==0 ) {
2495                        typeParameters_AST = (AST)currentAST.root;
2496                        typeParameters_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE_PARAMETERS,"TYPE_PARAMETERS")).add(typeParameters_AST));
2497                        currentAST.root = typeParameters_AST;
2498                        currentAST.child = typeParameters_AST!=null &&typeParameters_AST.getFirstChild()!=null ?
2499                                typeParameters_AST.getFirstChild() : typeParameters_AST;
2500                        currentAST.advanceChildToEnd();
2501                }
2502                typeParameters_AST = (AST)currentAST.root;
2503                returnAST = typeParameters_AST;
2504        }
2505        
2506        public final void superClassClause() throws RecognitionException, TokenStreamException {
2507                
2508                returnAST = null;
2509                ASTPair currentAST = new ASTPair();
2510                AST superClassClause_AST = null;
2511                Token  e = null;
2512                AST e_AST = null;
2513                AST c_AST = null;
2514                
2515                {
2516                switch ( LA(1)) {
2517                case LITERAL_extends:
2518                {
2519                        e = LT(1);
2520                        e_AST = astFactory.create(e);
2521                        astFactory.makeASTRoot(currentAST, e_AST);
2522                        match(LITERAL_extends);
2523                        if ( inputState.guessing==0 ) {
2524                                e_AST.setType(EXTENDS_CLAUSE);
2525                        }
2526                        classOrInterfaceType(false);
2527                        c_AST = (AST)returnAST;
2528                        astFactory.addASTChild(currentAST, returnAST);
2529                        break;
2530                }
2531                case LCURLY:
2532                case LITERAL_implements:
2533                {
2534                        break;
2535                }
2536                default:
2537                {
2538                        throw new NoViableAltException(LT(1), getFilename());
2539                }
2540                }
2541                }
2542                superClassClause_AST = (AST)currentAST.root;
2543                returnAST = superClassClause_AST;
2544        }
2545        
2546        public final void implementsClause() throws RecognitionException, TokenStreamException {
2547                
2548                returnAST = null;
2549                ASTPair currentAST = new ASTPair();
2550                AST implementsClause_AST = null;
2551                Token  i = null;
2552                AST i_AST = null;
2553                
2554                {
2555                switch ( LA(1)) {
2556                case LITERAL_implements:
2557                {
2558                        i = LT(1);
2559                        i_AST = astFactory.create(i);
2560                        astFactory.makeASTRoot(currentAST, i_AST);
2561                        match(LITERAL_implements);
2562                        if ( inputState.guessing==0 ) {
2563                                i_AST.setType(IMPLEMENTS_CLAUSE);
2564                        }
2565                        classOrInterfaceType(false);
2566                        astFactory.addASTChild(currentAST, returnAST);
2567                        {
2568                        _loop151:
2569                        do {
2570                                if ((LA(1)==COMMA)) {
2571                                        AST tmp57_AST = null;
2572                                        tmp57_AST = astFactory.create(LT(1));
2573                                        astFactory.addASTChild(currentAST, tmp57_AST);
2574                                        match(COMMA);
2575                                        classOrInterfaceType(false);
2576                                        astFactory.addASTChild(currentAST, returnAST);
2577                                }
2578                                else {
2579                                        break _loop151;
2580                                }
2581                                
2582                        } while (true);
2583                        }
2584                        break;
2585                }
2586                case LCURLY:
2587                {
2588                        break;
2589                }
2590                default:
2591                {
2592                        throw new NoViableAltException(LT(1), getFilename());
2593                }
2594                }
2595                }
2596                implementsClause_AST = (AST)currentAST.root;
2597                returnAST = implementsClause_AST;
2598        }
2599        
2600        public final void classBlock() throws RecognitionException, TokenStreamException {
2601                
2602                returnAST = null;
2603                ASTPair currentAST = new ASTPair();
2604                AST classBlock_AST = null;
2605                
2606                AST tmp58_AST = null;
2607                tmp58_AST = astFactory.create(LT(1));
2608                astFactory.addASTChild(currentAST, tmp58_AST);
2609                match(LCURLY);
2610                {
2611                _loop143:
2612                do {
2613                        switch ( LA(1)) {
2614                        case FINAL:
2615                        case ABSTRACT:
2616                        case STRICTFP:
2617                        case LITERAL_void:
2618                        case LITERAL_boolean:
2619                        case LITERAL_byte:
2620                        case LITERAL_char:
2621                        case LITERAL_short:
2622                        case LITERAL_int:
2623                        case LITERAL_float:
2624                        case LITERAL_long:
2625                        case LITERAL_double:
2626                        case IDENT:
2627                        case LITERAL_private:
2628                        case LITERAL_public:
2629                        case LITERAL_protected:
2630                        case LITERAL_static:
2631                        case LITERAL_transient:
2632                        case LITERAL_native:
2633                        case LITERAL_synchronized:
2634                        case LITERAL_volatile:
2635                        case LITERAL_class:
2636                        case LITERAL_interface:
2637                        case LCURLY:
2638                        case LITERAL_default:
2639                        case LT:
2640                        case ENUM:
2641                        case AT:
2642                        {
2643                                field();
2644                                astFactory.addASTChild(currentAST, returnAST);
2645                                break;
2646                        }
2647                        case SEMI:
2648                        {
2649                                AST tmp59_AST = null;
2650                                tmp59_AST = astFactory.create(LT(1));
2651                                astFactory.addASTChild(currentAST, tmp59_AST);
2652                                match(SEMI);
2653                                break;
2654                        }
2655                        default:
2656                        {
2657                                break _loop143;
2658                        }
2659                        }
2660                } while (true);
2661                }
2662                AST tmp60_AST = null;
2663                tmp60_AST = astFactory.create(LT(1));
2664                astFactory.addASTChild(currentAST, tmp60_AST);
2665                match(RCURLY);
2666                if ( inputState.guessing==0 ) {
2667                        classBlock_AST = (AST)currentAST.root;
2668                        classBlock_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(OBJBLOCK,"OBJBLOCK")).add(classBlock_AST));
2669                        currentAST.root = classBlock_AST;
2670                        currentAST.child = classBlock_AST!=null &&classBlock_AST.getFirstChild()!=null ?
2671                                classBlock_AST.getFirstChild() : classBlock_AST;
2672                        currentAST.advanceChildToEnd();
2673                }
2674                classBlock_AST = (AST)currentAST.root;
2675                returnAST = classBlock_AST;
2676        }
2677        
2678        public final void interfaceExtends() throws RecognitionException, TokenStreamException {
2679                
2680                returnAST = null;
2681                ASTPair currentAST = new ASTPair();
2682                AST interfaceExtends_AST = null;
2683                Token  e = null;
2684                AST e_AST = null;
2685                
2686                {
2687                switch ( LA(1)) {
2688                case LITERAL_extends:
2689                {
2690                        e = LT(1);
2691                        e_AST = astFactory.create(e);
2692                        astFactory.makeASTRoot(currentAST, e_AST);
2693                        match(LITERAL_extends);
2694                        if ( inputState.guessing==0 ) {
2695                                e_AST.setType(EXTENDS_CLAUSE);
2696                        }
2697                        classOrInterfaceType(false);
2698                        astFactory.addASTChild(currentAST, returnAST);
2699                        {
2700                        _loop147:
2701                        do {
2702                                if ((LA(1)==COMMA)) {
2703                                        AST tmp61_AST = null;
2704                                        tmp61_AST = astFactory.create(LT(1));
2705                                        astFactory.addASTChild(currentAST, tmp61_AST);
2706                                        match(COMMA);
2707                                        classOrInterfaceType(false);
2708                                        astFactory.addASTChild(currentAST, returnAST);
2709                                }
2710                                else {
2711                                        break _loop147;
2712                                }
2713                                
2714                        } while (true);
2715                        }
2716                        break;
2717                }
2718                case LCURLY:
2719                {
2720                        break;
2721                }
2722                default:
2723                {
2724                        throw new NoViableAltException(LT(1), getFilename());
2725                }
2726                }
2727                }
2728                interfaceExtends_AST = (AST)currentAST.root;
2729                returnAST = interfaceExtends_AST;
2730        }
2731        
2732        public final void enumBlock() throws RecognitionException, TokenStreamException {
2733                
2734                returnAST = null;
2735                ASTPair currentAST = new ASTPair();
2736                AST enumBlock_AST = null;
2737                
2738                AST tmp62_AST = null;
2739                tmp62_AST = astFactory.create(LT(1));
2740                astFactory.addASTChild(currentAST, tmp62_AST);
2741                match(LCURLY);
2742                {
2743                switch ( LA(1)) {
2744                case IDENT:
2745                case AT:
2746                {
2747                        enumConstant();
2748                        astFactory.addASTChild(currentAST, returnAST);
2749                        {
2750                        _loop124:
2751                        do {
2752                                if ((LA(1)==COMMA) && (LA(2)==IDENT||LA(2)==AT)) {
2753                                        AST tmp63_AST = null;
2754                                        tmp63_AST = astFactory.create(LT(1));
2755                                        astFactory.addASTChild(currentAST, tmp63_AST);
2756                                        match(COMMA);
2757                                        enumConstant();
2758                                        astFactory.addASTChild(currentAST, returnAST);
2759                                }
2760                                else {
2761                                        break _loop124;
2762                                }
2763                                
2764                        } while (true);
2765                        }
2766                        {
2767                        switch ( LA(1)) {
2768                        case COMMA:
2769                        {
2770                                AST tmp64_AST = null;
2771                                tmp64_AST = astFactory.create(LT(1));
2772                                astFactory.addASTChild(currentAST, tmp64_AST);
2773                                match(COMMA);
2774                                break;
2775                        }
2776                        case SEMI:
2777                        case RCURLY:
2778                        {
2779                                break;
2780                        }
2781                        default:
2782                        {
2783                                throw new NoViableAltException(LT(1), getFilename());
2784                        }
2785                        }
2786                        }
2787                        break;
2788                }
2789                case SEMI:
2790                case RCURLY:
2791                {
2792                        break;
2793                }
2794                default:
2795                {
2796                        throw new NoViableAltException(LT(1), getFilename());
2797                }
2798                }
2799                }
2800                {
2801                switch ( LA(1)) {
2802                case SEMI:
2803                {
2804                        AST tmp65_AST = null;
2805                        tmp65_AST = astFactory.create(LT(1));
2806                        astFactory.addASTChild(currentAST, tmp65_AST);
2807                        match(SEMI);
2808                        {
2809                        _loop128:
2810                        do {
2811                                switch ( LA(1)) {
2812                                case FINAL:
2813                                case ABSTRACT:
2814                                case STRICTFP:
2815                                case LITERAL_void:
2816                                case LITERAL_boolean:
2817                                case LITERAL_byte:
2818                                case LITERAL_char:
2819                                case LITERAL_short:
2820                                case LITERAL_int:
2821                                case LITERAL_float:
2822                                case LITERAL_long:
2823                                case LITERAL_double:
2824                                case IDENT:
2825                                case LITERAL_private:
2826                                case LITERAL_public:
2827                                case LITERAL_protected:
2828                                case LITERAL_static:
2829                                case LITERAL_transient:
2830                                case LITERAL_native:
2831                                case LITERAL_synchronized:
2832                                case LITERAL_volatile:
2833                                case LITERAL_class:
2834                                case LITERAL_interface:
2835                                case LCURLY:
2836                                case LITERAL_default:
2837                                case LT:
2838                                case ENUM:
2839                                case AT:
2840                                {
2841                                        field();
2842                                        astFactory.addASTChild(currentAST, returnAST);
2843                                        break;
2844                                }
2845                                case SEMI:
2846                                {
2847                                        AST tmp66_AST = null;
2848                                        tmp66_AST = astFactory.create(LT(1));
2849                                        astFactory.addASTChild(currentAST, tmp66_AST);
2850                                        match(SEMI);
2851                                        break;
2852                                }
2853                                default:
2854                                {
2855                                        break _loop128;
2856                                }
2857                                }
2858                        } while (true);
2859                        }
2860                        break;
2861                }
2862                case RCURLY:
2863                {
2864                        break;
2865                }
2866                default:
2867                {
2868                        throw new NoViableAltException(LT(1), getFilename());
2869                }
2870                }
2871                }
2872                AST tmp67_AST = null;
2873                tmp67_AST = astFactory.create(LT(1));
2874                astFactory.addASTChild(currentAST, tmp67_AST);
2875                match(RCURLY);
2876                if ( inputState.guessing==0 ) {
2877                        enumBlock_AST = (AST)currentAST.root;
2878                        enumBlock_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(OBJBLOCK,"OBJBLOCK")).add(enumBlock_AST));
2879                        currentAST.root = enumBlock_AST;
2880                        currentAST.child = enumBlock_AST!=null &&enumBlock_AST.getFirstChild()!=null ?
2881                                enumBlock_AST.getFirstChild() : enumBlock_AST;
2882                        currentAST.advanceChildToEnd();
2883                }
2884                enumBlock_AST = (AST)currentAST.root;
2885                returnAST = enumBlock_AST;
2886        }
2887        
2888        public final void annotationBlock() throws RecognitionException, TokenStreamException {
2889                
2890                returnAST = null;
2891                ASTPair currentAST = new ASTPair();
2892                AST annotationBlock_AST = null;
2893                
2894                AST tmp68_AST = null;
2895                tmp68_AST = astFactory.create(LT(1));
2896                astFactory.addASTChild(currentAST, tmp68_AST);
2897                match(LCURLY);
2898                {
2899                _loop115:
2900                do {
2901                        switch ( LA(1)) {
2902                        case FINAL:
2903                        case ABSTRACT:
2904                        case STRICTFP:
2905                        case LITERAL_void:
2906                        case LITERAL_boolean:
2907                        case LITERAL_byte:
2908                        case LITERAL_char:
2909                        case LITERAL_short:
2910                        case LITERAL_int:
2911                        case LITERAL_float:
2912                        case LITERAL_long:
2913                        case LITERAL_double:
2914                        case IDENT:
2915                        case LITERAL_private:
2916                        case LITERAL_public:
2917                        case LITERAL_protected:
2918                        case LITERAL_static:
2919                        case LITERAL_transient:
2920                        case LITERAL_native:
2921                        case LITERAL_synchronized:
2922                        case LITERAL_volatile:
2923                        case LITERAL_class:
2924                        case LITERAL_interface:
2925                        case LITERAL_default:
2926                        case ENUM:
2927                        case AT:
2928                        {
2929                                annotationField();
2930                                astFactory.addASTChild(currentAST, returnAST);
2931                                break;
2932                        }
2933                        case SEMI:
2934                        {
2935                                AST tmp69_AST = null;
2936                                tmp69_AST = astFactory.create(LT(1));
2937                                astFactory.addASTChild(currentAST, tmp69_AST);
2938                                match(SEMI);
2939                                break;
2940                        }
2941                        default:
2942                        {
2943                                break _loop115;
2944                        }
2945                        }
2946                } while (true);
2947                }
2948                AST tmp70_AST = null;
2949                tmp70_AST = astFactory.create(LT(1));
2950                astFactory.addASTChild(currentAST, tmp70_AST);
2951                match(RCURLY);
2952                if ( inputState.guessing==0 ) {
2953                        annotationBlock_AST = (AST)currentAST.root;
2954                        annotationBlock_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(OBJBLOCK,"OBJBLOCK")).add(annotationBlock_AST));
2955                        currentAST.root = annotationBlock_AST;
2956                        currentAST.child = annotationBlock_AST!=null &&annotationBlock_AST.getFirstChild()!=null ?
2957                                annotationBlock_AST.getFirstChild() : annotationBlock_AST;
2958                        currentAST.advanceChildToEnd();
2959                }
2960                annotationBlock_AST = (AST)currentAST.root;
2961                returnAST = annotationBlock_AST;
2962        }
2963        
2964        public final void typeParameter() throws RecognitionException, TokenStreamException {
2965                
2966                returnAST = null;
2967                ASTPair currentAST = new ASTPair();
2968                AST typeParameter_AST = null;
2969                Token  id = null;
2970                AST id_AST = null;
2971                
2972                {
2973                if (((LA(1)==IDENT||LA(1)==AT) && (_tokenSet_20.member(LA(2))))&&(LA(1) == AT)) {
2974                        annotations();
2975                        astFactory.addASTChild(currentAST, returnAST);
2976                }
2977                else if ((LA(1)==IDENT) && (_tokenSet_20.member(LA(2)))) {
2978                }
2979                else {
2980                        throw new NoViableAltException(LT(1), getFilename());
2981                }
2982                
2983                }
2984                {
2985                id = LT(1);
2986                id_AST = astFactory.create(id);
2987                astFactory.addASTChild(currentAST, id_AST);
2988                match(IDENT);
2989                }
2990                {
2991                if ((LA(1)==LITERAL_extends) && (LA(2)==IDENT||LA(2)==AT)) {
2992                        typeParameterBounds();
2993                        astFactory.addASTChild(currentAST, returnAST);
2994                }
2995                else if ((_tokenSet_20.member(LA(1))) && (_tokenSet_21.member(LA(2)))) {
2996                }
2997                else {
2998                        throw new NoViableAltException(LT(1), getFilename());
2999                }
3000                
3001                }
3002                if ( inputState.guessing==0 ) {
3003                        typeParameter_AST = (AST)currentAST.root;
3004                        typeParameter_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE_PARAMETER,"TYPE_PARAMETER")).add(typeParameter_AST));
3005                        currentAST.root = typeParameter_AST;
3006                        currentAST.child = typeParameter_AST!=null &&typeParameter_AST.getFirstChild()!=null ?
3007                                typeParameter_AST.getFirstChild() : typeParameter_AST;
3008                        currentAST.advanceChildToEnd();
3009                }
3010                typeParameter_AST = (AST)currentAST.root;
3011                returnAST = typeParameter_AST;
3012        }
3013        
3014        public final void typeParameterBounds() throws RecognitionException, TokenStreamException {
3015                
3016                returnAST = null;
3017                ASTPair currentAST = new ASTPair();
3018                AST typeParameterBounds_AST = null;
3019                Token  e = null;
3020                AST e_AST = null;
3021                Token  b = null;
3022                AST b_AST = null;
3023                
3024                e = LT(1);
3025                e_AST = astFactory.create(e);
3026                astFactory.makeASTRoot(currentAST, e_AST);
3027                match(LITERAL_extends);
3028                classOrInterfaceType(true);
3029                astFactory.addASTChild(currentAST, returnAST);
3030                {
3031                _loop112:
3032                do {
3033                        if ((LA(1)==BAND)) {
3034                                b = LT(1);
3035                                b_AST = astFactory.create(b);
3036                                astFactory.addASTChild(currentAST, b_AST);
3037                                match(BAND);
3038                                if ( inputState.guessing==0 ) {
3039                                        b_AST.setType(TYPE_EXTENSION_AND);
3040                                }
3041                                classOrInterfaceType(true);
3042                                astFactory.addASTChild(currentAST, returnAST);
3043                        }
3044                        else {
3045                                break _loop112;
3046                        }
3047                        
3048                } while (true);
3049                }
3050                if ( inputState.guessing==0 ) {
3051                        e_AST.setType(TYPE_UPPER_BOUNDS);
3052                }
3053                typeParameterBounds_AST = (AST)currentAST.root;
3054                returnAST = typeParameterBounds_AST;
3055        }
3056        
3057        public final void annotationField() throws RecognitionException, TokenStreamException {
3058                
3059                returnAST = null;
3060                ASTPair currentAST = new ASTPair();
3061                AST annotationField_AST = null;
3062                AST mods_AST = null;
3063                AST td_AST = null;
3064                AST t_AST = null;
3065                Token  i = null;
3066                AST i_AST = null;
3067                AST rt_AST = null;
3068                AST d_AST = null;
3069                Token  s = null;
3070                AST s_AST = null;
3071                AST v_AST = null;
3072                Token  s6 = null;
3073                AST s6_AST = null;
3074                
3075                modifiers();
3076                mods_AST = (AST)returnAST;
3077                {
3078                if ((_tokenSet_22.member(LA(1))) && (LA(2)==IDENT||LA(2)==LITERAL_interface)) {
3079                        typeDefinitionInternal(mods_AST);
3080                        td_AST = (AST)returnAST;
3081                        if ( inputState.guessing==0 ) {
3082                                annotationField_AST = (AST)currentAST.root;
3083                                annotationField_AST = td_AST;
3084                                currentAST.root = annotationField_AST;
3085                                currentAST.child = annotationField_AST!=null &&annotationField_AST.getFirstChild()!=null ?
3086                                        annotationField_AST.getFirstChild() : annotationField_AST;
3087                                currentAST.advanceChildToEnd();
3088                        }
3089                }
3090                else if ((_tokenSet_10.member(LA(1))) && (_tokenSet_23.member(LA(2)))) {
3091                        typeSpec(false);
3092                        t_AST = (AST)returnAST;
3093                        {
3094                        if ((LA(1)==IDENT) && (LA(2)==LPAREN)) {
3095                                i = LT(1);
3096                                i_AST = astFactory.create(i);
3097                                match(IDENT);
3098                                AST tmp71_AST = null;
3099                                tmp71_AST = astFactory.create(LT(1));
3100                                match(LPAREN);
3101                                AST tmp72_AST = null;
3102                                tmp72_AST = astFactory.create(LT(1));
3103                                match(RPAREN);
3104                                declaratorBrackets(t_AST);
3105                                rt_AST = (AST)returnAST;
3106                                {
3107                                switch ( LA(1)) {
3108                                case LITERAL_default:
3109                                {
3110                                        annotationDefault();
3111                                        d_AST = (AST)returnAST;
3112                                        break;
3113                                }
3114                                case SEMI:
3115                                {
3116                                        break;
3117                                }
3118                                default:
3119                                {
3120                                        throw new NoViableAltException(LT(1), getFilename());
3121                                }
3122                                }
3123                                }
3124                                s = LT(1);
3125                                s_AST = astFactory.create(s);
3126                                match(SEMI);
3127                                if ( inputState.guessing==0 ) {
3128                                        annotationField_AST = (AST)currentAST.root;
3129                                        annotationField_AST =
3130                                        (AST)astFactory.make( (new ASTArray(8)).add(astFactory.create(ANNOTATION_FIELD_DEF,"ANNOTATION_FIELD_DEF")).add(mods_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(rt_AST))).add(i_AST).add(tmp71_AST).add(tmp72_AST).add(d_AST).add(s_AST));
3131                                        currentAST.root = annotationField_AST;
3132                                        currentAST.child = annotationField_AST!=null &&annotationField_AST.getFirstChild()!=null ?
3133                                                annotationField_AST.getFirstChild() : annotationField_AST;
3134                                        currentAST.advanceChildToEnd();
3135                                }
3136                        }
3137                        else if ((LA(1)==IDENT) && (_tokenSet_24.member(LA(2)))) {
3138                                variableDefinitions(mods_AST,t_AST);
3139                                v_AST = (AST)returnAST;
3140                                s6 = LT(1);
3141                                s6_AST = astFactory.create(s6);
3142                                match(SEMI);
3143                                if ( inputState.guessing==0 ) {
3144                                        annotationField_AST = (AST)currentAST.root;
3145                                        
3146                                        annotationField_AST = v_AST;
3147                                        v_AST.addChild(s6_AST);
3148                                        
3149                                        currentAST.root = annotationField_AST;
3150                                        currentAST.child = annotationField_AST!=null &&annotationField_AST.getFirstChild()!=null ?
3151                                                annotationField_AST.getFirstChild() : annotationField_AST;
3152                                        currentAST.advanceChildToEnd();
3153                                }
3154                        }
3155                        else {
3156                                throw new NoViableAltException(LT(1), getFilename());
3157                        }
3158                        
3159                        }
3160                }
3161                else {
3162                        throw new NoViableAltException(LT(1), getFilename());
3163                }
3164                
3165                }
3166                returnAST = annotationField_AST;
3167        }
3168        
3169        public final void declaratorBrackets(
3170                AST typ
3171        ) throws RecognitionException, TokenStreamException {
3172                
3173                returnAST = null;
3174                ASTPair currentAST = new ASTPair();
3175                AST declaratorBrackets_AST = null;
3176                AST an_AST = null;
3177                Token  lb = null;
3178                AST lb_AST = null;
3179                Token  rb = null;
3180                AST rb_AST = null;
3181                AST db_AST = null;
3182                
3183                if ((LA(1)==LBRACK||LA(1)==AT) && (LA(2)==RBRACK||LA(2)==IDENT)) {
3184                        {
3185                        if (((LA(1)==LBRACK||LA(1)==AT) && (LA(2)==RBRACK||LA(2)==IDENT))&&(LA(1) == AT)) {
3186                                annotations();
3187                                an_AST = (AST)returnAST;
3188                        }
3189                        else if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
3190                        }
3191                        else {
3192                                throw new NoViableAltException(LT(1), getFilename());
3193                        }
3194                        
3195                        }
3196                        lb = LT(1);
3197                        lb_AST = astFactory.create(lb);
3198                        match(LBRACK);
3199                        if ( inputState.guessing==0 ) {
3200                                lb_AST.setType(ARRAY_DECLARATOR);
3201                        }
3202                        rb = LT(1);
3203                        rb_AST = astFactory.create(rb);
3204                        match(RBRACK);
3205                        declaratorBrackets((AST)astFactory.make( (new ASTArray(4)).add(lb_AST).add(typ).add(an_AST).add(rb_AST)));
3206                        db_AST = (AST)returnAST;
3207                        if ( inputState.guessing==0 ) {
3208                                declaratorBrackets_AST = (AST)currentAST.root;
3209                                declaratorBrackets_AST = db_AST;
3210                                currentAST.root = declaratorBrackets_AST;
3211                                currentAST.child = declaratorBrackets_AST!=null &&declaratorBrackets_AST.getFirstChild()!=null ?
3212                                        declaratorBrackets_AST.getFirstChild() : declaratorBrackets_AST;
3213                                currentAST.advanceChildToEnd();
3214                        }
3215                }
3216                else if ((_tokenSet_25.member(LA(1))) && (_tokenSet_26.member(LA(2)))) {
3217                        if ( inputState.guessing==0 ) {
3218                                declaratorBrackets_AST = (AST)currentAST.root;
3219                                declaratorBrackets_AST = typ;
3220                                currentAST.root = declaratorBrackets_AST;
3221                                currentAST.child = declaratorBrackets_AST!=null &&declaratorBrackets_AST.getFirstChild()!=null ?
3222                                        declaratorBrackets_AST.getFirstChild() : declaratorBrackets_AST;
3223                                currentAST.advanceChildToEnd();
3224                        }
3225                }
3226                else {
3227                        throw new NoViableAltException(LT(1), getFilename());
3228                }
3229                
3230                returnAST = declaratorBrackets_AST;
3231        }
3232        
3233        public final void annotationDefault() throws RecognitionException, TokenStreamException {
3234                
3235                returnAST = null;
3236                ASTPair currentAST = new ASTPair();
3237                AST annotationDefault_AST = null;
3238                
3239                AST tmp73_AST = null;
3240                tmp73_AST = astFactory.create(LT(1));
3241                astFactory.makeASTRoot(currentAST, tmp73_AST);
3242                match(LITERAL_default);
3243                annotationMemberValueInitializer();
3244                astFactory.addASTChild(currentAST, returnAST);
3245                annotationDefault_AST = (AST)currentAST.root;
3246                returnAST = annotationDefault_AST;
3247        }
3248        
3249        public final void enumConstant() throws RecognitionException, TokenStreamException {
3250                
3251                returnAST = null;
3252                ASTPair currentAST = new ASTPair();
3253                AST enumConstant_AST = null;
3254                AST an_AST = null;
3255                Token  i = null;
3256                AST i_AST = null;
3257                Token  l = null;
3258                AST l_AST = null;
3259                AST args_AST = null;
3260                Token  r = null;
3261                AST r_AST = null;
3262                AST b_AST = null;
3263                
3264                annotations();
3265                an_AST = (AST)returnAST;
3266                i = LT(1);
3267                i_AST = astFactory.create(i);
3268                match(IDENT);
3269                {
3270                switch ( LA(1)) {
3271                case LPAREN:
3272                {
3273                        l = LT(1);
3274                        l_AST = astFactory.create(l);
3275                        match(LPAREN);
3276                        argList();
3277                        args_AST = (AST)returnAST;
3278                        r = LT(1);
3279                        r_AST = astFactory.create(r);
3280                        match(RPAREN);
3281                        break;
3282                }
3283                case SEMI:
3284                case LCURLY:
3285                case RCURLY:
3286                case COMMA:
3287                {
3288                        break;
3289                }
3290                default:
3291                {
3292                        throw new NoViableAltException(LT(1), getFilename());
3293                }
3294                }
3295                }
3296                {
3297                switch ( LA(1)) {
3298                case LCURLY:
3299                {
3300                        enumConstantBlock();
3301                        b_AST = (AST)returnAST;
3302                        break;
3303                }
3304                case SEMI:
3305                case RCURLY:
3306                case COMMA:
3307                {
3308                        break;
3309                }
3310                default:
3311                {
3312                        throw new NoViableAltException(LT(1), getFilename());
3313                }
3314                }
3315                }
3316                if ( inputState.guessing==0 ) {
3317                        enumConstant_AST = (AST)currentAST.root;
3318                        enumConstant_AST = (AST)astFactory.make( (new ASTArray(7)).add(astFactory.create(ENUM_CONSTANT_DEF,"ENUM_CONSTANT_DEF")).add(an_AST).add(i_AST).add(l_AST).add(args_AST).add(r_AST).add(b_AST));
3319                        currentAST.root = enumConstant_AST;
3320                        currentAST.child = enumConstant_AST!=null &&enumConstant_AST.getFirstChild()!=null ?
3321                                enumConstant_AST.getFirstChild() : enumConstant_AST;
3322                        currentAST.advanceChildToEnd();
3323                }
3324                returnAST = enumConstant_AST;
3325        }
3326        
3327        public final void field() throws RecognitionException, TokenStreamException {
3328                
3329                returnAST = null;
3330                ASTPair currentAST = new ASTPair();
3331                AST field_AST = null;
3332                AST mods_AST = null;
3333                AST td_AST = null;
3334                AST tp_AST = null;
3335                AST h_AST = null;
3336                AST s_AST = null;
3337                AST t_AST = null;
3338                AST param_AST = null;
3339                AST rt_AST = null;
3340                AST tc_AST = null;
3341                AST s2_AST = null;
3342                Token  s5 = null;
3343                AST s5_AST = null;
3344                AST v_AST = null;
3345                Token  s6 = null;
3346                AST s6_AST = null;
3347                Token  si = null;
3348                AST si_AST = null;
3349                AST s3_AST = null;
3350                AST s4_AST = null;
3351                
3352                if ((_tokenSet_27.member(LA(1))) && (_tokenSet_28.member(LA(2)))) {
3353                        modifiers();
3354                        mods_AST = (AST)returnAST;
3355                        {
3356                        if ((_tokenSet_22.member(LA(1))) && (LA(2)==IDENT||LA(2)==LITERAL_interface)) {
3357                                typeDefinitionInternal(mods_AST);
3358                                td_AST = (AST)returnAST;
3359                                if ( inputState.guessing==0 ) {
3360                                        field_AST = (AST)currentAST.root;
3361                                        field_AST = td_AST;
3362                                        currentAST.root = field_AST;
3363                                        currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ?
3364                                                field_AST.getFirstChild() : field_AST;
3365                                        currentAST.advanceChildToEnd();
3366                                }
3367                        }
3368                        else if ((_tokenSet_29.member(LA(1))) && (_tokenSet_11.member(LA(2)))) {
3369                                {
3370                                switch ( LA(1)) {
3371                                case LT:
3372                                {
3373                                        typeParameters();
3374                                        tp_AST = (AST)returnAST;
3375                                        break;
3376                                }
3377                                case LITERAL_void:
3378                                case LITERAL_boolean:
3379                                case LITERAL_byte:
3380                                case LITERAL_char:
3381                                case LITERAL_short:
3382                                case LITERAL_int:
3383                                case LITERAL_float:
3384                                case LITERAL_long:
3385                                case LITERAL_double:
3386                                case IDENT:
3387                                case AT:
3388                                {
3389                                        break;
3390                                }
3391                                default:
3392                                {
3393                                        throw new NoViableAltException(LT(1), getFilename());
3394                                }
3395                                }
3396                                }
3397                                {
3398                                if ((LA(1)==IDENT) && (LA(2)==LPAREN)) {
3399                                        ctorHead();
3400                                        h_AST = (AST)returnAST;
3401                                        constructorBody();
3402                                        s_AST = (AST)returnAST;
3403                                        if ( inputState.guessing==0 ) {
3404                                                field_AST = (AST)currentAST.root;
3405                                                field_AST = (AST)astFactory.make( (new ASTArray(5)).add(astFactory.create(CTOR_DEF,"CTOR_DEF")).add(mods_AST).add(tp_AST).add(h_AST).add(s_AST));
3406                                                currentAST.root = field_AST;
3407                                                currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ?
3408                                                        field_AST.getFirstChild() : field_AST;
3409                                                currentAST.advanceChildToEnd();
3410                                        }
3411                                }
3412                                else if ((_tokenSet_10.member(LA(1))) && (_tokenSet_23.member(LA(2)))) {
3413                                        typeSpec(false);
3414                                        t_AST = (AST)returnAST;
3415                                        {
3416                                        if ((LA(1)==IDENT) && (LA(2)==LPAREN)) {
3417                                                AST tmp74_AST = null;
3418                                                tmp74_AST = astFactory.create(LT(1));
3419                                                match(IDENT);
3420                                                AST tmp75_AST = null;
3421                                                tmp75_AST = astFactory.create(LT(1));
3422                                                match(LPAREN);
3423                                                parameterDeclarationList();
3424                                                param_AST = (AST)returnAST;
3425                                                AST tmp76_AST = null;
3426                                                tmp76_AST = astFactory.create(LT(1));
3427                                                match(RPAREN);
3428                                                declaratorBrackets(t_AST);
3429                                                rt_AST = (AST)returnAST;
3430                                                {
3431                                                switch ( LA(1)) {
3432                                                case LITERAL_throws:
3433                                                {
3434                                                        throwsClause();
3435                                                        tc_AST = (AST)returnAST;
3436                                                        break;
3437                                                }
3438                                                case SEMI:
3439                                                case LCURLY:
3440                                                {
3441                                                        break;
3442                                                }
3443                                                default:
3444                                                {
3445                                                        throw new NoViableAltException(LT(1), getFilename());
3446                                                }
3447                                                }
3448                                                }
3449                                                {
3450                                                switch ( LA(1)) {
3451                                                case LCURLY:
3452                                                {
3453                                                        compoundStatement();
3454                                                        s2_AST = (AST)returnAST;
3455                                                        break;
3456                                                }
3457                                                case SEMI:
3458                                                {
3459                                                        s5 = LT(1);
3460                                                        s5_AST = astFactory.create(s5);
3461                                                        match(SEMI);
3462                                                        break;
3463                                                }
3464                                                default:
3465                                                {
3466                                                        throw new NoViableAltException(LT(1), getFilename());
3467                                                }
3468                                                }
3469                                                }
3470                                                if ( inputState.guessing==0 ) {
3471                                                        field_AST = (AST)currentAST.root;
3472                                                        field_AST = (AST)astFactory.make( (new ASTArray(11)).add(astFactory.create(METHOD_DEF,"METHOD_DEF")).add(mods_AST).add(tp_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(rt_AST))).add(tmp74_AST).add(tmp75_AST).add(param_AST).add(tmp76_AST).add(tc_AST).add(s2_AST).add(s5_AST));
3473                                                        currentAST.root = field_AST;
3474                                                        currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ?
3475                                                                field_AST.getFirstChild() : field_AST;
3476                                                        currentAST.advanceChildToEnd();
3477                                                }
3478                                        }
3479                                        else if ((LA(1)==IDENT) && (_tokenSet_30.member(LA(2)))) {
3480                                                variableDefinitions(mods_AST,t_AST);
3481                                                v_AST = (AST)returnAST;
3482                                                {
3483                                                if ((LA(1)==SEMI) && (_tokenSet_31.member(LA(2)))) {
3484                                                        s6 = LT(1);
3485                                                        s6_AST = astFactory.create(s6);
3486                                                        match(SEMI);
3487                                                }
3488                                                else if ((_tokenSet_31.member(LA(1))) && (_tokenSet_32.member(LA(2)))) {
3489                                                }
3490                                                else {
3491                                                        throw new NoViableAltException(LT(1), getFilename());
3492                                                }
3493                                                
3494                                                }
3495                                                if ( inputState.guessing==0 ) {
3496                                                        field_AST = (AST)currentAST.root;
3497                                                        
3498                                                        field_AST = v_AST;
3499                                                        v_AST.addChild(s6_AST);
3500                                                        
3501                                                        currentAST.root = field_AST;
3502                                                        currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ?
3503                                                                field_AST.getFirstChild() : field_AST;
3504                                                        currentAST.advanceChildToEnd();
3505                                                }
3506                                        }
3507                                        else {
3508                                                throw new NoViableAltException(LT(1), getFilename());
3509                                        }
3510                                        
3511                                        }
3512                                }
3513                                else {
3514                                        throw new NoViableAltException(LT(1), getFilename());
3515                                }
3516                                
3517                                }
3518                        }
3519                        else {
3520                                throw new NoViableAltException(LT(1), getFilename());
3521                        }
3522                        
3523                        }
3524                }
3525                else if ((LA(1)==LITERAL_static) && (LA(2)==LCURLY)) {
3526                        si = LT(1);
3527                        si_AST = astFactory.create(si);
3528                        match(LITERAL_static);
3529                        compoundStatement();
3530                        s3_AST = (AST)returnAST;
3531                        if ( inputState.guessing==0 ) {
3532                                field_AST = (AST)currentAST.root;
3533                                si_AST.setType(STATIC_INIT);
3534                                si_AST.setText("STATIC_INIT");
3535                                field_AST = (AST)astFactory.make( (new ASTArray(2)).add(si_AST).add(s3_AST));
3536                                currentAST.root = field_AST;
3537                                currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ?
3538                                        field_AST.getFirstChild() : field_AST;
3539                                currentAST.advanceChildToEnd();
3540                        }
3541                }
3542                else if ((LA(1)==LCURLY)) {
3543                        compoundStatement();
3544                        s4_AST = (AST)returnAST;
3545                        if ( inputState.guessing==0 ) {
3546                                field_AST = (AST)currentAST.root;
3547                                field_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(INSTANCE_INIT,"INSTANCE_INIT")).add(s4_AST));
3548                                currentAST.root = field_AST;
3549                                currentAST.child = field_AST!=null &&field_AST.getFirstChild()!=null ?
3550                                        field_AST.getFirstChild() : field_AST;
3551                                currentAST.advanceChildToEnd();
3552                        }
3553                }
3554                else {
3555                        throw new NoViableAltException(LT(1), getFilename());
3556                }
3557                
3558                returnAST = field_AST;
3559        }
3560        
3561        public final void argList() throws RecognitionException, TokenStreamException {
3562                
3563                returnAST = null;
3564                ASTPair currentAST = new ASTPair();
3565                AST argList_AST = null;
3566                
3567                {
3568                if (((_tokenSet_14.member(LA(1))))&&(LA(1)!=RPAREN)) {
3569                        expressionList();
3570                        astFactory.addASTChild(currentAST, returnAST);
3571                }
3572                else if ((LA(1)==RPAREN)) {
3573                        if ( inputState.guessing==0 ) {
3574                                argList_AST = (AST)currentAST.root;
3575                                argList_AST = astFactory.create(ELIST,"ELIST");
3576                                currentAST.root = argList_AST;
3577                                currentAST.child = argList_AST!=null &&argList_AST.getFirstChild()!=null ?
3578                                        argList_AST.getFirstChild() : argList_AST;
3579                                currentAST.advanceChildToEnd();
3580                        }
3581                }
3582                else {
3583                        throw new NoViableAltException(LT(1), getFilename());
3584                }
3585                
3586                }
3587                argList_AST = (AST)currentAST.root;
3588                returnAST = argList_AST;
3589        }
3590        
3591        public final void enumConstantBlock() throws RecognitionException, TokenStreamException {
3592                
3593                returnAST = null;
3594                ASTPair currentAST = new ASTPair();
3595                AST enumConstantBlock_AST = null;
3596                
3597                AST tmp77_AST = null;
3598                tmp77_AST = astFactory.create(LT(1));
3599                astFactory.addASTChild(currentAST, tmp77_AST);
3600                match(LCURLY);
3601                {
3602                _loop134:
3603                do {
3604                        switch ( LA(1)) {
3605                        case FINAL:
3606                        case ABSTRACT:
3607                        case STRICTFP:
3608                        case LITERAL_void:
3609                        case LITERAL_boolean:
3610                        case LITERAL_byte:
3611                        case LITERAL_char:
3612                        case LITERAL_short:
3613                        case LITERAL_int:
3614                        case LITERAL_float:
3615                        case LITERAL_long:
3616                        case LITERAL_double:
3617                        case IDENT:
3618                        case LITERAL_private:
3619                        case LITERAL_public:
3620                        case LITERAL_protected:
3621                        case LITERAL_static:
3622                        case LITERAL_transient:
3623                        case LITERAL_native:
3624                        case LITERAL_synchronized:
3625                        case LITERAL_volatile:
3626                        case LITERAL_class:
3627                        case LITERAL_interface:
3628                        case LCURLY:
3629                        case LITERAL_default:
3630                        case LT:
3631                        case ENUM:
3632                        case AT:
3633                        {
3634                                enumConstantField();
3635                                astFactory.addASTChild(currentAST, returnAST);
3636                                break;
3637                        }
3638                        case SEMI:
3639                        {
3640                                AST tmp78_AST = null;
3641                                tmp78_AST = astFactory.create(LT(1));
3642                                astFactory.addASTChild(currentAST, tmp78_AST);
3643                                match(SEMI);
3644                                break;
3645                        }
3646                        default:
3647                        {
3648                                break _loop134;
3649                        }
3650                        }
3651                } while (true);
3652                }
3653                AST tmp79_AST = null;
3654                tmp79_AST = astFactory.create(LT(1));
3655                astFactory.addASTChild(currentAST, tmp79_AST);
3656                match(RCURLY);
3657                if ( inputState.guessing==0 ) {
3658                        enumConstantBlock_AST = (AST)currentAST.root;
3659                        enumConstantBlock_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(OBJBLOCK,"OBJBLOCK")).add(enumConstantBlock_AST));
3660                        currentAST.root = enumConstantBlock_AST;
3661                        currentAST.child = enumConstantBlock_AST!=null &&enumConstantBlock_AST.getFirstChild()!=null ?
3662                                enumConstantBlock_AST.getFirstChild() : enumConstantBlock_AST;
3663                        currentAST.advanceChildToEnd();
3664                }
3665                enumConstantBlock_AST = (AST)currentAST.root;
3666                returnAST = enumConstantBlock_AST;
3667        }
3668        
3669        public final void enumConstantField() throws RecognitionException, TokenStreamException {
3670                
3671                returnAST = null;
3672                ASTPair currentAST = new ASTPair();
3673                AST enumConstantField_AST = null;
3674                AST mods_AST = null;
3675                AST td_AST = null;
3676                AST tp_AST = null;
3677                AST t_AST = null;
3678                AST param_AST = null;
3679                AST rt_AST = null;
3680                AST tc_AST = null;
3681                AST s2_AST = null;
3682                Token  s3 = null;
3683                AST s3_AST = null;
3684                AST v_AST = null;
3685                Token  s6 = null;
3686                AST s6_AST = null;
3687                AST s4_AST = null;
3688                
3689                switch ( LA(1)) {
3690                case FINAL:
3691                case ABSTRACT:
3692                case STRICTFP:
3693                case LITERAL_void:
3694                case LITERAL_boolean:
3695                case LITERAL_byte:
3696                case LITERAL_char:
3697                case LITERAL_short:
3698                case LITERAL_int:
3699                case LITERAL_float:
3700                case LITERAL_long:
3701                case LITERAL_double:
3702                case IDENT:
3703                case LITERAL_private:
3704                case LITERAL_public:
3705                case LITERAL_protected:
3706                case LITERAL_static:
3707                case LITERAL_transient:
3708                case LITERAL_native:
3709                case LITERAL_synchronized:
3710                case LITERAL_volatile:
3711                case LITERAL_class:
3712                case LITERAL_interface:
3713                case LITERAL_default:
3714                case LT:
3715                case ENUM:
3716                case AT:
3717                {
3718                        modifiers();
3719                        mods_AST = (AST)returnAST;
3720                        {
3721                        if ((_tokenSet_22.member(LA(1))) && (LA(2)==IDENT||LA(2)==LITERAL_interface)) {
3722                                typeDefinitionInternal(mods_AST);
3723                                td_AST = (AST)returnAST;
3724                                if ( inputState.guessing==0 ) {
3725                                        enumConstantField_AST = (AST)currentAST.root;
3726                                        enumConstantField_AST = td_AST;
3727                                        currentAST.root = enumConstantField_AST;
3728                                        currentAST.child = enumConstantField_AST!=null &&enumConstantField_AST.getFirstChild()!=null ?
3729                                                enumConstantField_AST.getFirstChild() : enumConstantField_AST;
3730                                        currentAST.advanceChildToEnd();
3731                                }
3732                        }
3733                        else if ((_tokenSet_29.member(LA(1))) && (_tokenSet_23.member(LA(2)))) {
3734                                {
3735                                switch ( LA(1)) {
3736                                case LT:
3737                                {
3738                                        typeParameters();
3739                                        tp_AST = (AST)returnAST;
3740                                        break;
3741                                }
3742                                case LITERAL_void:
3743                                case LITERAL_boolean:
3744                                case LITERAL_byte:
3745                                case LITERAL_char:
3746                                case LITERAL_short:
3747                                case LITERAL_int:
3748                                case LITERAL_float:
3749                                case LITERAL_long:
3750                                case LITERAL_double:
3751                                case IDENT:
3752                                case AT:
3753                                {
3754                                        break;
3755                                }
3756                                default:
3757                                {
3758                                        throw new NoViableAltException(LT(1), getFilename());
3759                                }
3760                                }
3761                                }
3762                                typeSpec(false);
3763                                t_AST = (AST)returnAST;
3764                                {
3765                                if ((LA(1)==IDENT) && (LA(2)==LPAREN)) {
3766                                        AST tmp80_AST = null;
3767                                        tmp80_AST = astFactory.create(LT(1));
3768                                        match(IDENT);
3769                                        AST tmp81_AST = null;
3770                                        tmp81_AST = astFactory.create(LT(1));
3771                                        match(LPAREN);
3772                                        parameterDeclarationList();
3773                                        param_AST = (AST)returnAST;
3774                                        AST tmp82_AST = null;
3775                                        tmp82_AST = astFactory.create(LT(1));
3776                                        match(RPAREN);
3777                                        declaratorBrackets(t_AST);
3778                                        rt_AST = (AST)returnAST;
3779                                        {
3780                                        switch ( LA(1)) {
3781                                        case LITERAL_throws:
3782                                        {
3783                                                throwsClause();
3784                                                tc_AST = (AST)returnAST;
3785                                                break;
3786                                        }
3787                                        case SEMI:
3788                                        case LCURLY:
3789                                        {
3790                                                break;
3791                                        }
3792                                        default:
3793                                        {
3794                                                throw new NoViableAltException(LT(1), getFilename());
3795                                        }
3796                                        }
3797                                        }
3798                                        {
3799                                        switch ( LA(1)) {
3800                                        case LCURLY:
3801                                        {
3802                                                compoundStatement();
3803                                                s2_AST = (AST)returnAST;
3804                                                break;
3805                                        }
3806                                        case SEMI:
3807                                        {
3808                                                s3 = LT(1);
3809                                                s3_AST = astFactory.create(s3);
3810                                                match(SEMI);
3811                                                break;
3812                                        }
3813                                        default:
3814                                        {
3815                                                throw new NoViableAltException(LT(1), getFilename());
3816                                        }
3817                                        }
3818                                        }
3819                                        if ( inputState.guessing==0 ) {
3820                                                enumConstantField_AST = (AST)currentAST.root;
3821                                                enumConstantField_AST = (AST)astFactory.make( (new ASTArray(11)).add(astFactory.create(METHOD_DEF,"METHOD_DEF")).add(mods_AST).add(tp_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(rt_AST))).add(tmp80_AST).add(tmp81_AST).add(param_AST).add(tmp82_AST).add(tc_AST).add(s2_AST).add(s3_AST));
3822                                                currentAST.root = enumConstantField_AST;
3823                                                currentAST.child = enumConstantField_AST!=null &&enumConstantField_AST.getFirstChild()!=null ?
3824                                                        enumConstantField_AST.getFirstChild() : enumConstantField_AST;
3825                                                currentAST.advanceChildToEnd();
3826                                        }
3827                                }
3828                                else if ((LA(1)==IDENT) && (_tokenSet_24.member(LA(2)))) {
3829                                        variableDefinitions(mods_AST,t_AST);
3830                                        v_AST = (AST)returnAST;
3831                                        s6 = LT(1);
3832                                        s6_AST = astFactory.create(s6);
3833                                        match(SEMI);
3834                                        if ( inputState.guessing==0 ) {
3835                                                enumConstantField_AST = (AST)currentAST.root;
3836                                                
3837                                                enumConstantField_AST = v_AST;
3838                                                v_AST.addChild(s6_AST);
3839                                                
3840                                                currentAST.root = enumConstantField_AST;
3841                                                currentAST.child = enumConstantField_AST!=null &&enumConstantField_AST.getFirstChild()!=null ?
3842                                                        enumConstantField_AST.getFirstChild() : enumConstantField_AST;
3843                                                currentAST.advanceChildToEnd();
3844                                        }
3845                                }
3846                                else {
3847                                        throw new NoViableAltException(LT(1), getFilename());
3848                                }
3849                                
3850                                }
3851                        }
3852                        else {
3853                                throw new NoViableAltException(LT(1), getFilename());
3854                        }
3855                        
3856                        }
3857                        break;
3858                }
3859                case LCURLY:
3860                {
3861                        compoundStatement();
3862                        s4_AST = (AST)returnAST;
3863                        if ( inputState.guessing==0 ) {
3864                                enumConstantField_AST = (AST)currentAST.root;
3865                                enumConstantField_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(INSTANCE_INIT,"INSTANCE_INIT")).add(s4_AST));
3866                                currentAST.root = enumConstantField_AST;
3867                                currentAST.child = enumConstantField_AST!=null &&enumConstantField_AST.getFirstChild()!=null ?
3868                                        enumConstantField_AST.getFirstChild() : enumConstantField_AST;
3869                                currentAST.advanceChildToEnd();
3870                        }
3871                        break;
3872                }
3873                default:
3874                {
3875                        throw new NoViableAltException(LT(1), getFilename());
3876                }
3877                }
3878                returnAST = enumConstantField_AST;
3879        }
3880        
3881        public final void parameterDeclarationList() throws RecognitionException, TokenStreamException {
3882                
3883                returnAST = null;
3884                ASTPair currentAST = new ASTPair();
3885                AST parameterDeclarationList_AST = null;
3886                
3887                {
3888                boolean synPredMatched195 = false;
3889                if (((_tokenSet_33.member(LA(1))) && (_tokenSet_34.member(LA(2))))) {
3890                        int _m195 = mark();
3891                        synPredMatched195 = true;
3892                        inputState.guessing++;
3893                        try {
3894                                {
3895                                parameterDeclaration();
3896                                }
3897                        }
3898                        catch (RecognitionException pe) {
3899                                synPredMatched195 = false;
3900                        }
3901                        rewind(_m195);
3902inputState.guessing--;
3903                }
3904                if ( synPredMatched195 ) {
3905                        parameterDeclaration();
3906                        astFactory.addASTChild(currentAST, returnAST);
3907                        {
3908                        _loop199:
3909                        do {
3910                                boolean synPredMatched198 = false;
3911                                if (((LA(1)==COMMA) && (_tokenSet_33.member(LA(2))))) {
3912                                        int _m198 = mark();
3913                                        synPredMatched198 = true;
3914                                        inputState.guessing++;
3915                                        try {
3916                                                {
3917                                                match(COMMA);
3918                                                parameterDeclaration();
3919                                                }
3920                                        }
3921                                        catch (RecognitionException pe) {
3922                                                synPredMatched198 = false;
3923                                        }
3924                                        rewind(_m198);
3925inputState.guessing--;
3926                                }
3927                                if ( synPredMatched198 ) {
3928                                        AST tmp83_AST = null;
3929                                        tmp83_AST = astFactory.create(LT(1));
3930                                        astFactory.addASTChild(currentAST, tmp83_AST);
3931                                        match(COMMA);
3932                                        parameterDeclaration();
3933                                        astFactory.addASTChild(currentAST, returnAST);
3934                                }
3935                                else {
3936                                        break _loop199;
3937                                }
3938                                
3939                        } while (true);
3940                        }
3941                        {
3942                        switch ( LA(1)) {
3943                        case COMMA:
3944                        {
3945                                AST tmp84_AST = null;
3946                                tmp84_AST = astFactory.create(LT(1));
3947                                astFactory.addASTChild(currentAST, tmp84_AST);
3948                                match(COMMA);
3949                                variableLengthParameterDeclaration();
3950                                astFactory.addASTChild(currentAST, returnAST);
3951                                break;
3952                        }
3953                        case RPAREN:
3954                        {
3955                                break;
3956                        }
3957                        default:
3958                        {
3959                                throw new NoViableAltException(LT(1), getFilename());
3960                        }
3961                        }
3962                        }
3963                }
3964                else if ((_tokenSet_35.member(LA(1))) && (_tokenSet_36.member(LA(2)))) {
3965                        variableLengthParameterDeclaration();
3966                        astFactory.addASTChild(currentAST, returnAST);
3967                }
3968                else if ((LA(1)==RPAREN)) {
3969                }
3970                else {
3971                        throw new NoViableAltException(LT(1), getFilename());
3972                }
3973                
3974                }
3975                if ( inputState.guessing==0 ) {
3976                        parameterDeclarationList_AST = (AST)currentAST.root;
3977                        parameterDeclarationList_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(PARAMETERS,"PARAMETERS")).add(parameterDeclarationList_AST));
3978                        currentAST.root = parameterDeclarationList_AST;
3979                        currentAST.child = parameterDeclarationList_AST!=null &&parameterDeclarationList_AST.getFirstChild()!=null ?
3980                                parameterDeclarationList_AST.getFirstChild() : parameterDeclarationList_AST;
3981                        currentAST.advanceChildToEnd();
3982                }
3983                parameterDeclarationList_AST = (AST)currentAST.root;
3984                returnAST = parameterDeclarationList_AST;
3985        }
3986        
3987        public final void throwsClause() throws RecognitionException, TokenStreamException {
3988                
3989                returnAST = null;
3990                ASTPair currentAST = new ASTPair();
3991                AST throwsClause_AST = null;
3992                
3993                AST tmp85_AST = null;
3994                tmp85_AST = astFactory.create(LT(1));
3995                astFactory.makeASTRoot(currentAST, tmp85_AST);
3996                match(LITERAL_throws);
3997                {
3998                if (((LA(1)==IDENT||LA(1)==AT) && (_tokenSet_37.member(LA(2))))&&(LA(1) == AT)) {
3999                        annotations();
4000                        astFactory.addASTChild(currentAST, returnAST);
4001                }
4002                else if ((LA(1)==IDENT) && (_tokenSet_38.member(LA(2)))) {
4003                }
4004                else {
4005                        throw new NoViableAltException(LT(1), getFilename());
4006                }
4007                
4008                }
4009                identifier();
4010                astFactory.addASTChild(currentAST, returnAST);
4011                {
4012                _loop191:
4013                do {
4014                        if ((LA(1)==COMMA)) {
4015                                AST tmp86_AST = null;
4016                                tmp86_AST = astFactory.create(LT(1));
4017                                astFactory.addASTChild(currentAST, tmp86_AST);
4018                                match(COMMA);
4019                                {
4020                                if (((LA(1)==IDENT||LA(1)==AT) && (_tokenSet_37.member(LA(2))))&&(LA(1) == AT)) {
4021                                        annotations();
4022                                        astFactory.addASTChild(currentAST, returnAST);
4023                                }
4024                                else if ((LA(1)==IDENT) && (_tokenSet_38.member(LA(2)))) {
4025                                }
4026                                else {
4027                                        throw new NoViableAltException(LT(1), getFilename());
4028                                }
4029                                
4030                                }
4031                                identifier();
4032                                astFactory.addASTChild(currentAST, returnAST);
4033                        }
4034                        else {
4035                                break _loop191;
4036                        }
4037                        
4038                } while (true);
4039                }
4040                throwsClause_AST = (AST)currentAST.root;
4041                returnAST = throwsClause_AST;
4042        }
4043        
4044        public final void compoundStatement() throws RecognitionException, TokenStreamException {
4045                
4046                returnAST = null;
4047                ASTPair currentAST = new ASTPair();
4048                AST compoundStatement_AST = null;
4049                Token  lc = null;
4050                AST lc_AST = null;
4051                
4052                lc = LT(1);
4053                lc_AST = astFactory.create(lc);
4054                astFactory.makeASTRoot(currentAST, lc_AST);
4055                match(LCURLY);
4056                if ( inputState.guessing==0 ) {
4057                        lc_AST.setType(SLIST);
4058                }
4059                {
4060                _loop219:
4061                do {
4062                        if ((_tokenSet_39.member(LA(1)))) {
4063                                statement();
4064                                astFactory.addASTChild(currentAST, returnAST);
4065                        }
4066                        else {
4067                                break _loop219;
4068                        }
4069                        
4070                } while (true);
4071                }
4072                AST tmp87_AST = null;
4073                tmp87_AST = astFactory.create(LT(1));
4074                astFactory.addASTChild(currentAST, tmp87_AST);
4075                match(RCURLY);
4076                compoundStatement_AST = (AST)currentAST.root;
4077                returnAST = compoundStatement_AST;
4078        }
4079        
4080        public final void ctorHead() throws RecognitionException, TokenStreamException {
4081                
4082                returnAST = null;
4083                ASTPair currentAST = new ASTPair();
4084                AST ctorHead_AST = null;
4085                
4086                AST tmp88_AST = null;
4087                tmp88_AST = astFactory.create(LT(1));
4088                astFactory.addASTChild(currentAST, tmp88_AST);
4089                match(IDENT);
4090                AST tmp89_AST = null;
4091                tmp89_AST = astFactory.create(LT(1));
4092                astFactory.addASTChild(currentAST, tmp89_AST);
4093                match(LPAREN);
4094                parameterDeclarationList();
4095                astFactory.addASTChild(currentAST, returnAST);
4096                AST tmp90_AST = null;
4097                tmp90_AST = astFactory.create(LT(1));
4098                astFactory.addASTChild(currentAST, tmp90_AST);
4099                match(RPAREN);
4100                {
4101                switch ( LA(1)) {
4102                case LITERAL_throws:
4103                {
4104                        throwsClause();
4105                        astFactory.addASTChild(currentAST, returnAST);
4106                        break;
4107                }
4108                case LCURLY:
4109                {
4110                        break;
4111                }
4112                default:
4113                {
4114                        throw new NoViableAltException(LT(1), getFilename());
4115                }
4116                }
4117                }
4118                ctorHead_AST = (AST)currentAST.root;
4119                returnAST = ctorHead_AST;
4120        }
4121        
4122        public final void constructorBody() throws RecognitionException, TokenStreamException {
4123                
4124                returnAST = null;
4125                ASTPair currentAST = new ASTPair();
4126                AST constructorBody_AST = null;
4127                Token  lc = null;
4128                AST lc_AST = null;
4129                
4130                lc = LT(1);
4131                lc_AST = astFactory.create(lc);
4132                astFactory.makeASTRoot(currentAST, lc_AST);
4133                match(LCURLY);
4134                if ( inputState.guessing==0 ) {
4135                        lc_AST.setType(SLIST);
4136                }
4137                {
4138                boolean synPredMatched163 = false;
4139                if (((_tokenSet_40.member(LA(1))) && (_tokenSet_41.member(LA(2))))) {
4140                        int _m163 = mark();
4141                        synPredMatched163 = true;
4142                        inputState.guessing++;
4143                        try {
4144                                {
4145                                explicitConstructorInvocation();
4146                                }
4147                        }
4148                        catch (RecognitionException pe) {
4149                                synPredMatched163 = false;
4150                        }
4151                        rewind(_m163);
4152inputState.guessing--;
4153                }
4154                if ( synPredMatched163 ) {
4155                        explicitConstructorInvocation();
4156                        astFactory.addASTChild(currentAST, returnAST);
4157                }
4158                else if ((_tokenSet_42.member(LA(1))) && (_tokenSet_43.member(LA(2)))) {
4159                }
4160                else {
4161                        throw new NoViableAltException(LT(1), getFilename());
4162                }
4163                
4164                }
4165                {
4166                _loop165:
4167                do {
4168                        if ((_tokenSet_39.member(LA(1)))) {
4169                                statement();
4170                                astFactory.addASTChild(currentAST, returnAST);
4171                        }
4172                        else {
4173                                break _loop165;
4174                        }
4175                        
4176                } while (true);
4177                }
4178                AST tmp91_AST = null;
4179                tmp91_AST = astFactory.create(LT(1));
4180                astFactory.addASTChild(currentAST, tmp91_AST);
4181                match(RCURLY);
4182                constructorBody_AST = (AST)currentAST.root;
4183                returnAST = constructorBody_AST;
4184        }
4185        
4186        public final void explicitConstructorInvocation() throws RecognitionException, TokenStreamException {
4187                
4188                returnAST = null;
4189                ASTPair currentAST = new ASTPair();
4190                AST explicitConstructorInvocation_AST = null;
4191                Token  t = null;
4192                AST t_AST = null;
4193                Token  s = null;
4194                AST s_AST = null;
4195                Token  s1 = null;
4196                AST s1_AST = null;
4197                
4198                {
4199                if ((_tokenSet_44.member(LA(1))) && (_tokenSet_45.member(LA(2)))) {
4200                        {
4201                        switch ( LA(1)) {
4202                        case LT:
4203                        {
4204                                typeArguments(false);
4205                                astFactory.addASTChild(currentAST, returnAST);
4206                                break;
4207                        }
4208                        case LITERAL_this:
4209                        case LITERAL_super:
4210                        {
4211                                break;
4212                        }
4213                        default:
4214                        {
4215                                throw new NoViableAltException(LT(1), getFilename());
4216                        }
4217                        }
4218                        }
4219                        {
4220                        switch ( LA(1)) {
4221                        case LITERAL_this:
4222                        {
4223                                t = LT(1);
4224                                t_AST = astFactory.create(t);
4225                                astFactory.makeASTRoot(currentAST, t_AST);
4226                                match(LITERAL_this);
4227                                AST tmp92_AST = null;
4228                                tmp92_AST = astFactory.create(LT(1));
4229                                astFactory.addASTChild(currentAST, tmp92_AST);
4230                                match(LPAREN);
4231                                argList();
4232                                astFactory.addASTChild(currentAST, returnAST);
4233                                AST tmp93_AST = null;
4234                                tmp93_AST = astFactory.create(LT(1));
4235                                astFactory.addASTChild(currentAST, tmp93_AST);
4236                                match(RPAREN);
4237                                AST tmp94_AST = null;
4238                                tmp94_AST = astFactory.create(LT(1));
4239                                astFactory.addASTChild(currentAST, tmp94_AST);
4240                                match(SEMI);
4241                                if ( inputState.guessing==0 ) {
4242                                        t_AST.setType(CTOR_CALL);
4243                                }
4244                                break;
4245                        }
4246                        case LITERAL_super:
4247                        {
4248                                s = LT(1);
4249                                s_AST = astFactory.create(s);
4250                                astFactory.makeASTRoot(currentAST, s_AST);
4251                                match(LITERAL_super);
4252                                AST tmp95_AST = null;
4253                                tmp95_AST = astFactory.create(LT(1));
4254                                astFactory.addASTChild(currentAST, tmp95_AST);
4255                                match(LPAREN);
4256                                argList();
4257                                astFactory.addASTChild(currentAST, returnAST);
4258                                AST tmp96_AST = null;
4259                                tmp96_AST = astFactory.create(LT(1));
4260                                astFactory.addASTChild(currentAST, tmp96_AST);
4261                                match(RPAREN);
4262                                AST tmp97_AST = null;
4263                                tmp97_AST = astFactory.create(LT(1));
4264                                astFactory.addASTChild(currentAST, tmp97_AST);
4265                                match(SEMI);
4266                                if ( inputState.guessing==0 ) {
4267                                        s_AST.setType(SUPER_CTOR_CALL);
4268                                }
4269                                break;
4270                        }
4271                        default:
4272                        {
4273                                throw new NoViableAltException(LT(1), getFilename());
4274                        }
4275                        }
4276                        }
4277                }
4278                else if ((_tokenSet_46.member(LA(1))) && (_tokenSet_47.member(LA(2)))) {
4279                        primaryExpression();
4280                        astFactory.addASTChild(currentAST, returnAST);
4281                        AST tmp98_AST = null;
4282                        tmp98_AST = astFactory.create(LT(1));
4283                        astFactory.addASTChild(currentAST, tmp98_AST);
4284                        match(DOT);
4285                        {
4286                        switch ( LA(1)) {
4287                        case LT:
4288                        {
4289                                typeArguments(false);
4290                                astFactory.addASTChild(currentAST, returnAST);
4291                                break;
4292                        }
4293                        case LITERAL_super:
4294                        {
4295                                break;
4296                        }
4297                        default:
4298                        {
4299                                throw new NoViableAltException(LT(1), getFilename());
4300                        }
4301                        }
4302                        }
4303                        s1 = LT(1);
4304                        s1_AST = astFactory.create(s1);
4305                        astFactory.makeASTRoot(currentAST, s1_AST);
4306                        match(LITERAL_super);
4307                        AST tmp99_AST = null;
4308                        tmp99_AST = astFactory.create(LT(1));
4309                        astFactory.addASTChild(currentAST, tmp99_AST);
4310                        match(LPAREN);
4311                        argList();
4312                        astFactory.addASTChild(currentAST, returnAST);
4313                        AST tmp100_AST = null;
4314                        tmp100_AST = astFactory.create(LT(1));
4315                        astFactory.addASTChild(currentAST, tmp100_AST);
4316                        match(RPAREN);
4317                        AST tmp101_AST = null;
4318                        tmp101_AST = astFactory.create(LT(1));
4319                        astFactory.addASTChild(currentAST, tmp101_AST);
4320                        match(SEMI);
4321                        if ( inputState.guessing==0 ) {
4322                                s1_AST.setType(SUPER_CTOR_CALL);
4323                        }
4324                }
4325                else {
4326                        throw new NoViableAltException(LT(1), getFilename());
4327                }
4328                
4329                }
4330                explicitConstructorInvocation_AST = (AST)currentAST.root;
4331                returnAST = explicitConstructorInvocation_AST;
4332        }
4333        
4334        public final void statement() throws RecognitionException, TokenStreamException {
4335                
4336                returnAST = null;
4337                ASTPair currentAST = new ASTPair();
4338                AST statement_AST = null;
4339                
4340                switch ( LA(1)) {
4341                case FINAL:
4342                case ABSTRACT:
4343                case STRICTFP:
4344                case SEMI:
4345                case LITERAL_void:
4346                case LITERAL_boolean:
4347                case LITERAL_byte:
4348                case LITERAL_char:
4349                case LITERAL_short:
4350                case LITERAL_int:
4351                case LITERAL_float:
4352                case LITERAL_long:
4353                case LITERAL_double:
4354                case IDENT:
4355                case LITERAL_private:
4356                case LITERAL_public:
4357                case LITERAL_protected:
4358                case LITERAL_static:
4359                case LITERAL_transient:
4360                case LITERAL_native:
4361                case LITERAL_synchronized:
4362                case LITERAL_volatile:
4363                case LITERAL_class:
4364                case LCURLY:
4365                case LPAREN:
4366                case LITERAL_this:
4367                case LITERAL_super:
4368                case LITERAL_if:
4369                case LITERAL_while:
4370                case LITERAL_do:
4371                case LITERAL_break:
4372                case LITERAL_continue:
4373                case LITERAL_return:
4374                case LITERAL_switch:
4375                case LITERAL_throw:
4376                case LITERAL_for:
4377                case LITERAL_default:
4378                case LITERAL_try:
4379                case PLUS:
4380                case MINUS:
4381                case INC:
4382                case DEC:
4383                case BNOT:
4384                case LNOT:
4385                case LITERAL_true:
4386                case LITERAL_false:
4387                case LITERAL_null:
4388                case LITERAL_new:
4389                case NUM_INT:
4390                case CHAR_LITERAL:
4391                case STRING_LITERAL:
4392                case NUM_FLOAT:
4393                case NUM_LONG:
4394                case NUM_DOUBLE:
4395                case AT:
4396                {
4397                        traditionalStatement();
4398                        astFactory.addASTChild(currentAST, returnAST);
4399                        statement_AST = (AST)currentAST.root;
4400                        break;
4401                }
4402                case ASSERT:
4403                {
4404                        assertStatement();
4405                        astFactory.addASTChild(currentAST, returnAST);
4406                        statement_AST = (AST)currentAST.root;
4407                        break;
4408                }
4409                default:
4410                {
4411                        throw new NoViableAltException(LT(1), getFilename());
4412                }
4413                }
4414                returnAST = statement_AST;
4415        }
4416        
4417        public final void primaryExpression() throws RecognitionException, TokenStreamException {
4418                
4419                returnAST = null;
4420                ASTPair currentAST = new ASTPair();
4421                AST primaryExpression_AST = null;
4422                Token  lbt = null;
4423                AST lbt_AST = null;
4424                
4425                switch ( LA(1)) {
4426                case NUM_INT:
4427                case CHAR_LITERAL:
4428                case STRING_LITERAL:
4429                case NUM_FLOAT:
4430                case NUM_LONG:
4431                case NUM_DOUBLE:
4432                {
4433                        constant();
4434                        astFactory.addASTChild(currentAST, returnAST);
4435                        primaryExpression_AST = (AST)currentAST.root;
4436                        break;
4437                }
4438                case LITERAL_true:
4439                {
4440                        AST tmp102_AST = null;
4441                        tmp102_AST = astFactory.create(LT(1));
4442                        astFactory.addASTChild(currentAST, tmp102_AST);
4443                        match(LITERAL_true);
4444                        primaryExpression_AST = (AST)currentAST.root;
4445                        break;
4446                }
4447                case LITERAL_false:
4448                {
4449                        AST tmp103_AST = null;
4450                        tmp103_AST = astFactory.create(LT(1));
4451                        astFactory.addASTChild(currentAST, tmp103_AST);
4452                        match(LITERAL_false);
4453                        primaryExpression_AST = (AST)currentAST.root;
4454                        break;
4455                }
4456                case LITERAL_this:
4457                {
4458                        AST tmp104_AST = null;
4459                        tmp104_AST = astFactory.create(LT(1));
4460                        astFactory.addASTChild(currentAST, tmp104_AST);
4461                        match(LITERAL_this);
4462                        primaryExpression_AST = (AST)currentAST.root;
4463                        break;
4464                }
4465                case LITERAL_null:
4466                {
4467                        AST tmp105_AST = null;
4468                        tmp105_AST = astFactory.create(LT(1));
4469                        astFactory.addASTChild(currentAST, tmp105_AST);
4470                        match(LITERAL_null);
4471                        primaryExpression_AST = (AST)currentAST.root;
4472                        break;
4473                }
4474                case LITERAL_new:
4475                {
4476                        newExpression();
4477                        astFactory.addASTChild(currentAST, returnAST);
4478                        primaryExpression_AST = (AST)currentAST.root;
4479                        break;
4480                }
4481                case LPAREN:
4482                {
4483                        AST tmp106_AST = null;
4484                        tmp106_AST = astFactory.create(LT(1));
4485                        astFactory.addASTChild(currentAST, tmp106_AST);
4486                        match(LPAREN);
4487                        {
4488                        boolean synPredMatched367 = false;
4489                        if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
4490                                int _m367 = mark();
4491                                synPredMatched367 = true;
4492                                inputState.guessing++;
4493                                try {
4494                                        {
4495                                        lambdaExpression();
4496                                        }
4497                                }
4498                                catch (RecognitionException pe) {
4499                                        synPredMatched367 = false;
4500                                }
4501                                rewind(_m367);
4502inputState.guessing--;
4503                        }
4504                        if ( synPredMatched367 ) {
4505                                lambdaExpression();
4506                                astFactory.addASTChild(currentAST, returnAST);
4507                        }
4508                        else if ((_tokenSet_14.member(LA(1))) && (_tokenSet_48.member(LA(2)))) {
4509                                assignmentExpression();
4510                                astFactory.addASTChild(currentAST, returnAST);
4511                        }
4512                        else {
4513                                throw new NoViableAltException(LT(1), getFilename());
4514                        }
4515                        
4516                        }
4517                        AST tmp107_AST = null;
4518                        tmp107_AST = astFactory.create(LT(1));
4519                        astFactory.addASTChild(currentAST, tmp107_AST);
4520                        match(RPAREN);
4521                        primaryExpression_AST = (AST)currentAST.root;
4522                        break;
4523                }
4524                case LITERAL_super:
4525                {
4526                        AST tmp108_AST = null;
4527                        tmp108_AST = astFactory.create(LT(1));
4528                        astFactory.addASTChild(currentAST, tmp108_AST);
4529                        match(LITERAL_super);
4530                        primaryExpression_AST = (AST)currentAST.root;
4531                        break;
4532                }
4533                default:
4534                        boolean synPredMatched364 = false;
4535                        if (((_tokenSet_10.member(LA(1))) && (_tokenSet_19.member(LA(2))))) {
4536                                int _m364 = mark();
4537                                synPredMatched364 = true;
4538                                inputState.guessing++;
4539                                try {
4540                                        {
4541                                        typeSpec(false);
4542                                        match(DOUBLE_COLON);
4543                                        }
4544                                }
4545                                catch (RecognitionException pe) {
4546                                        synPredMatched364 = false;
4547                                }
4548                                rewind(_m364);
4549inputState.guessing--;
4550                        }
4551                        if ( synPredMatched364 ) {
4552                                typeSpec(false);
4553                                astFactory.addASTChild(currentAST, returnAST);
4554                                primaryExpression_AST = (AST)currentAST.root;
4555                        }
4556                        else if ((LA(1)==IDENT) && (_tokenSet_19.member(LA(2)))) {
4557                                AST tmp109_AST = null;
4558                                tmp109_AST = astFactory.create(LT(1));
4559                                astFactory.addASTChild(currentAST, tmp109_AST);
4560                                match(IDENT);
4561                                primaryExpression_AST = (AST)currentAST.root;
4562                        }
4563                        else if (((LA(1) >= LITERAL_void && LA(1) <= LITERAL_double)) && (_tokenSet_19.member(LA(2)))) {
4564                                builtInType();
4565                                astFactory.addASTChild(currentAST, returnAST);
4566                                {
4567                                _loop369:
4568                                do {
4569                                        if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
4570                                                lbt = LT(1);
4571                                                lbt_AST = astFactory.create(lbt);
4572                                                astFactory.makeASTRoot(currentAST, lbt_AST);
4573                                                match(LBRACK);
4574                                                if ( inputState.guessing==0 ) {
4575                                                        lbt_AST.setType(ARRAY_DECLARATOR);
4576                                                }
4577                                                AST tmp110_AST = null;
4578                                                tmp110_AST = astFactory.create(LT(1));
4579                                                astFactory.addASTChild(currentAST, tmp110_AST);
4580                                                match(RBRACK);
4581                                        }
4582                                        else {
4583                                                break _loop369;
4584                                        }
4585                                        
4586                                } while (true);
4587                                }
4588                                {
4589                                if ((LA(1)==DOT) && (LA(2)==LITERAL_class)) {
4590                                        AST tmp111_AST = null;
4591                                        tmp111_AST = astFactory.create(LT(1));
4592                                        astFactory.makeASTRoot(currentAST, tmp111_AST);
4593                                        match(DOT);
4594                                        AST tmp112_AST = null;
4595                                        tmp112_AST = astFactory.create(LT(1));
4596                                        astFactory.addASTChild(currentAST, tmp112_AST);
4597                                        match(LITERAL_class);
4598                                }
4599                                else if ((_tokenSet_19.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
4600                                }
4601                                else {
4602                                        throw new NoViableAltException(LT(1), getFilename());
4603                                }
4604                                
4605                                }
4606                                primaryExpression_AST = (AST)currentAST.root;
4607                        }
4608                else {
4609                        throw new NoViableAltException(LT(1), getFilename());
4610                }
4611                }
4612                returnAST = primaryExpression_AST;
4613        }
4614        
4615/** Declaration of a variable.  This can be a class/instance variable,
4616 *   or a local variable in a method.
4617    @param mods declaration mods.
4618    @param t variable declaration type.
4619    @throws RecognitionException if recognition problem occurs.
4620    @throws TokenStreamException if problem occurs while generating a stream of tokens.
4621 * It can also include possible initialization.
4622 */
4623        public final void variableDeclarator(
4624                AST mods, AST t
4625        ) throws RecognitionException, TokenStreamException {
4626                
4627                returnAST = null;
4628                ASTPair currentAST = new ASTPair();
4629                AST variableDeclarator_AST = null;
4630                Token  id = null;
4631                AST id_AST = null;
4632                AST d_AST = null;
4633                AST v_AST = null;
4634                
4635                id = LT(1);
4636                id_AST = astFactory.create(id);
4637                match(IDENT);
4638                declaratorBrackets(t);
4639                d_AST = (AST)returnAST;
4640                varInitializer();
4641                v_AST = (AST)returnAST;
4642                if ( inputState.guessing==0 ) {
4643                        variableDeclarator_AST = (AST)currentAST.root;
4644                        variableDeclarator_AST = (AST)astFactory.make( (new ASTArray(5)).add(astFactory.create(VARIABLE_DEF,"VARIABLE_DEF")).add(mods).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(d_AST))).add(id_AST).add(v_AST));
4645                        currentAST.root = variableDeclarator_AST;
4646                        currentAST.child = variableDeclarator_AST!=null &&variableDeclarator_AST.getFirstChild()!=null ?
4647                                variableDeclarator_AST.getFirstChild() : variableDeclarator_AST;
4648                        currentAST.advanceChildToEnd();
4649                }
4650                returnAST = variableDeclarator_AST;
4651        }
4652        
4653        public final void varInitializer() throws RecognitionException, TokenStreamException {
4654                
4655                returnAST = null;
4656                ASTPair currentAST = new ASTPair();
4657                AST varInitializer_AST = null;
4658                
4659                {
4660                switch ( LA(1)) {
4661                case ASSIGN:
4662                {
4663                        AST tmp113_AST = null;
4664                        tmp113_AST = astFactory.create(LT(1));
4665                        astFactory.makeASTRoot(currentAST, tmp113_AST);
4666                        match(ASSIGN);
4667                        initializer();
4668                        astFactory.addASTChild(currentAST, returnAST);
4669                        break;
4670                }
4671                case FINAL:
4672                case ABSTRACT:
4673                case STRICTFP:
4674                case SEMI:
4675                case LITERAL_void:
4676                case LITERAL_boolean:
4677                case LITERAL_byte:
4678                case LITERAL_char:
4679                case LITERAL_short:
4680                case LITERAL_int:
4681                case LITERAL_float:
4682                case LITERAL_long:
4683                case LITERAL_double:
4684                case IDENT:
4685                case LITERAL_private:
4686                case LITERAL_public:
4687                case LITERAL_protected:
4688                case LITERAL_static:
4689                case LITERAL_transient:
4690                case LITERAL_native:
4691                case LITERAL_synchronized:
4692                case LITERAL_volatile:
4693                case LITERAL_class:
4694                case LITERAL_interface:
4695                case LCURLY:
4696                case RCURLY:
4697                case COMMA:
4698                case RPAREN:
4699                case LITERAL_default:
4700                case LT:
4701                case ENUM:
4702                case AT:
4703                {
4704                        break;
4705                }
4706                default:
4707                {
4708                        throw new NoViableAltException(LT(1), getFilename());
4709                }
4710                }
4711                }
4712                varInitializer_AST = (AST)currentAST.root;
4713                returnAST = varInitializer_AST;
4714        }
4715        
4716        public final void initializer() throws RecognitionException, TokenStreamException {
4717                
4718                returnAST = null;
4719                ASTPair currentAST = new ASTPair();
4720                AST initializer_AST = null;
4721                
4722                switch ( LA(1)) {
4723                case LITERAL_void:
4724                case LITERAL_boolean:
4725                case LITERAL_byte:
4726                case LITERAL_char:
4727                case LITERAL_short:
4728                case LITERAL_int:
4729                case LITERAL_float:
4730                case LITERAL_long:
4731                case LITERAL_double:
4732                case IDENT:
4733                case LPAREN:
4734                case LITERAL_this:
4735                case LITERAL_super:
4736                case PLUS:
4737                case MINUS:
4738                case INC:
4739                case DEC:
4740                case BNOT:
4741                case LNOT:
4742                case LITERAL_true:
4743                case LITERAL_false:
4744                case LITERAL_null:
4745                case LITERAL_new:
4746                case NUM_INT:
4747                case CHAR_LITERAL:
4748                case STRING_LITERAL:
4749                case NUM_FLOAT:
4750                case NUM_LONG:
4751                case NUM_DOUBLE:
4752                case AT:
4753                {
4754                        expression();
4755                        astFactory.addASTChild(currentAST, returnAST);
4756                        initializer_AST = (AST)currentAST.root;
4757                        break;
4758                }
4759                case LCURLY:
4760                {
4761                        arrayInitializer();
4762                        astFactory.addASTChild(currentAST, returnAST);
4763                        initializer_AST = (AST)currentAST.root;
4764                        break;
4765                }
4766                default:
4767                {
4768                        throw new NoViableAltException(LT(1), getFilename());
4769                }
4770                }
4771                returnAST = initializer_AST;
4772        }
4773        
4774        public final void arrayInitializer() throws RecognitionException, TokenStreamException {
4775                
4776                returnAST = null;
4777                ASTPair currentAST = new ASTPair();
4778                AST arrayInitializer_AST = null;
4779                Token  lc = null;
4780                AST lc_AST = null;
4781                
4782                lc = LT(1);
4783                lc_AST = astFactory.create(lc);
4784                astFactory.makeASTRoot(currentAST, lc_AST);
4785                match(LCURLY);
4786                if ( inputState.guessing==0 ) {
4787                        lc_AST.setType(ARRAY_INIT);
4788                }
4789                {
4790                switch ( LA(1)) {
4791                case LITERAL_void:
4792                case LITERAL_boolean:
4793                case LITERAL_byte:
4794                case LITERAL_char:
4795                case LITERAL_short:
4796                case LITERAL_int:
4797                case LITERAL_float:
4798                case LITERAL_long:
4799                case LITERAL_double:
4800                case IDENT:
4801                case LCURLY:
4802                case LPAREN:
4803                case LITERAL_this:
4804                case LITERAL_super:
4805                case PLUS:
4806                case MINUS:
4807                case INC:
4808                case DEC:
4809                case BNOT:
4810                case LNOT:
4811                case LITERAL_true:
4812                case LITERAL_false:
4813                case LITERAL_null:
4814                case LITERAL_new:
4815                case NUM_INT:
4816                case CHAR_LITERAL:
4817                case STRING_LITERAL:
4818                case NUM_FLOAT:
4819                case NUM_LONG:
4820                case NUM_DOUBLE:
4821                case AT:
4822                {
4823                        initializer();
4824                        astFactory.addASTChild(currentAST, returnAST);
4825                        {
4826                        _loop182:
4827                        do {
4828                                if ((LA(1)==COMMA) && (_tokenSet_12.member(LA(2)))) {
4829                                        AST tmp114_AST = null;
4830                                        tmp114_AST = astFactory.create(LT(1));
4831                                        astFactory.addASTChild(currentAST, tmp114_AST);
4832                                        match(COMMA);
4833                                        initializer();
4834                                        astFactory.addASTChild(currentAST, returnAST);
4835                                }
4836                                else {
4837                                        break _loop182;
4838                                }
4839                                
4840                        } while (true);
4841                        }
4842                        break;
4843                }
4844                case RCURLY:
4845                case COMMA:
4846                {
4847                        break;
4848                }
4849                default:
4850                {
4851                        throw new NoViableAltException(LT(1), getFilename());
4852                }
4853                }
4854                }
4855                {
4856                switch ( LA(1)) {
4857                case COMMA:
4858                {
4859                        AST tmp115_AST = null;
4860                        tmp115_AST = astFactory.create(LT(1));
4861                        astFactory.addASTChild(currentAST, tmp115_AST);
4862                        match(COMMA);
4863                        break;
4864                }
4865                case RCURLY:
4866                {
4867                        break;
4868                }
4869                default:
4870                {
4871                        throw new NoViableAltException(LT(1), getFilename());
4872                }
4873                }
4874                }
4875                AST tmp116_AST = null;
4876                tmp116_AST = astFactory.create(LT(1));
4877                astFactory.addASTChild(currentAST, tmp116_AST);
4878                match(RCURLY);
4879                arrayInitializer_AST = (AST)currentAST.root;
4880                returnAST = arrayInitializer_AST;
4881        }
4882        
4883        public final void expression() throws RecognitionException, TokenStreamException {
4884                
4885                returnAST = null;
4886                ASTPair currentAST = new ASTPair();
4887                AST expression_AST = null;
4888                
4889                boolean synPredMatched282 = false;
4890                if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
4891                        int _m282 = mark();
4892                        synPredMatched282 = true;
4893                        inputState.guessing++;
4894                        try {
4895                                {
4896                                lambdaExpression();
4897                                }
4898                        }
4899                        catch (RecognitionException pe) {
4900                                synPredMatched282 = false;
4901                        }
4902                        rewind(_m282);
4903inputState.guessing--;
4904                }
4905                if ( synPredMatched282 ) {
4906                        lambdaExpression();
4907                        astFactory.addASTChild(currentAST, returnAST);
4908                        expression_AST = (AST)currentAST.root;
4909                }
4910                else if (((_tokenSet_14.member(LA(1))) && (_tokenSet_19.member(LA(2))))&&(LA(1)!=RPAREN)) {
4911                        assignmentExpression();
4912                        astFactory.addASTChild(currentAST, returnAST);
4913                        if ( inputState.guessing==0 ) {
4914                                expression_AST = (AST)currentAST.root;
4915                                expression_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(EXPR,"EXPR")).add(expression_AST));
4916                                currentAST.root = expression_AST;
4917                                currentAST.child = expression_AST!=null &&expression_AST.getFirstChild()!=null ?
4918                                        expression_AST.getFirstChild() : expression_AST;
4919                                currentAST.advanceChildToEnd();
4920                        }
4921                        expression_AST = (AST)currentAST.root;
4922                }
4923                else {
4924                        throw new NoViableAltException(LT(1), getFilename());
4925                }
4926                
4927                returnAST = expression_AST;
4928        }
4929        
4930        public final void parameterDeclaration() throws RecognitionException, TokenStreamException {
4931                
4932                returnAST = null;
4933                ASTPair currentAST = new ASTPair();
4934                AST parameterDeclaration_AST = null;
4935                AST pm_AST = null;
4936                AST t_AST = null;
4937                AST id_AST = null;
4938                AST pd_AST = null;
4939                
4940                parameterModifier();
4941                pm_AST = (AST)returnAST;
4942                {
4943                if ((_tokenSet_10.member(LA(1))) && (_tokenSet_50.member(LA(2)))) {
4944                        typeSpec(false);
4945                        t_AST = (AST)returnAST;
4946                }
4947                else if ((LA(1)==IDENT||LA(1)==LITERAL_this) && (_tokenSet_51.member(LA(2)))) {
4948                }
4949                else {
4950                        throw new NoViableAltException(LT(1), getFilename());
4951                }
4952                
4953                }
4954                parameterIdent();
4955                id_AST = (AST)returnAST;
4956                declaratorBrackets(t_AST);
4957                pd_AST = (AST)returnAST;
4958                if ( inputState.guessing==0 ) {
4959                        parameterDeclaration_AST = (AST)currentAST.root;
4960                        parameterDeclaration_AST = (AST)astFactory.make( (new ASTArray(4)).add(astFactory.create(PARAMETER_DEF,"PARAMETER_DEF")).add(pm_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(pd_AST))).add(id_AST));
4961                        currentAST.root = parameterDeclaration_AST;
4962                        currentAST.child = parameterDeclaration_AST!=null &&parameterDeclaration_AST.getFirstChild()!=null ?
4963                                parameterDeclaration_AST.getFirstChild() : parameterDeclaration_AST;
4964                        currentAST.advanceChildToEnd();
4965                }
4966                returnAST = parameterDeclaration_AST;
4967        }
4968        
4969        public final void variableLengthParameterDeclaration() throws RecognitionException, TokenStreamException {
4970                
4971                returnAST = null;
4972                ASTPair currentAST = new ASTPair();
4973                AST variableLengthParameterDeclaration_AST = null;
4974                AST pm_AST = null;
4975                AST t_AST = null;
4976                Token  td = null;
4977                AST td_AST = null;
4978                AST pd_AST = null;
4979                
4980                parameterModifier();
4981                pm_AST = (AST)returnAST;
4982                variableLengthParameterTypeSpec();
4983                t_AST = (AST)returnAST;
4984                td = LT(1);
4985                td_AST = astFactory.create(td);
4986                match(ELLIPSIS);
4987                AST tmp117_AST = null;
4988                tmp117_AST = astFactory.create(LT(1));
4989                match(IDENT);
4990                declaratorBrackets(t_AST);
4991                pd_AST = (AST)returnAST;
4992                if ( inputState.guessing==0 ) {
4993                        variableLengthParameterDeclaration_AST = (AST)currentAST.root;
4994                        variableLengthParameterDeclaration_AST = (AST)astFactory.make( (new ASTArray(5)).add(astFactory.create(PARAMETER_DEF,"PARAMETER_DEF")).add(pm_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(pd_AST))).add(td_AST).add(tmp117_AST));
4995                        currentAST.root = variableLengthParameterDeclaration_AST;
4996                        currentAST.child = variableLengthParameterDeclaration_AST!=null &&variableLengthParameterDeclaration_AST.getFirstChild()!=null ?
4997                                variableLengthParameterDeclaration_AST.getFirstChild() : variableLengthParameterDeclaration_AST;
4998                        currentAST.advanceChildToEnd();
4999                }
5000                returnAST = variableLengthParameterDeclaration_AST;
5001        }
5002        
5003        public final void parameterModifier() throws RecognitionException, TokenStreamException {
5004                
5005                returnAST = null;
5006                ASTPair currentAST = new ASTPair();
5007                AST parameterModifier_AST = null;
5008                Token  f = null;
5009                AST f_AST = null;
5010                
5011                {
5012                _loop204:
5013                do {
5014                        if ((LA(1)==AT) && (LA(2)==IDENT)) {
5015                                annotation();
5016                                astFactory.addASTChild(currentAST, returnAST);
5017                        }
5018                        else {
5019                                break _loop204;
5020                        }
5021                        
5022                } while (true);
5023                }
5024                {
5025                switch ( LA(1)) {
5026                case FINAL:
5027                {
5028                        f = LT(1);
5029                        f_AST = astFactory.create(f);
5030                        astFactory.addASTChild(currentAST, f_AST);
5031                        match(FINAL);
5032                        break;
5033                }
5034                case LITERAL_void:
5035                case LITERAL_boolean:
5036                case LITERAL_byte:
5037                case LITERAL_char:
5038                case LITERAL_short:
5039                case LITERAL_int:
5040                case LITERAL_float:
5041                case LITERAL_long:
5042                case LITERAL_double:
5043                case IDENT:
5044                case LITERAL_this:
5045                case AT:
5046                {
5047                        break;
5048                }
5049                default:
5050                {
5051                        throw new NoViableAltException(LT(1), getFilename());
5052                }
5053                }
5054                }
5055                {
5056                _loop207:
5057                do {
5058                        if ((LA(1)==AT) && (LA(2)==IDENT)) {
5059                                annotation();
5060                                astFactory.addASTChild(currentAST, returnAST);
5061                        }
5062                        else {
5063                                break _loop207;
5064                        }
5065                        
5066                } while (true);
5067                }
5068                if ( inputState.guessing==0 ) {
5069                        parameterModifier_AST = (AST)currentAST.root;
5070                        parameterModifier_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(MODIFIERS,"MODIFIERS")).add(parameterModifier_AST));
5071                        currentAST.root = parameterModifier_AST;
5072                        currentAST.child = parameterModifier_AST!=null &&parameterModifier_AST.getFirstChild()!=null ?
5073                                parameterModifier_AST.getFirstChild() : parameterModifier_AST;
5074                        currentAST.advanceChildToEnd();
5075                }
5076                parameterModifier_AST = (AST)currentAST.root;
5077                returnAST = parameterModifier_AST;
5078        }
5079        
5080        public final void parameterIdent() throws RecognitionException, TokenStreamException {
5081                
5082                returnAST = null;
5083                ASTPair currentAST = new ASTPair();
5084                AST parameterIdent_AST = null;
5085                
5086                switch ( LA(1)) {
5087                case LITERAL_this:
5088                {
5089                        AST tmp118_AST = null;
5090                        tmp118_AST = astFactory.create(LT(1));
5091                        astFactory.addASTChild(currentAST, tmp118_AST);
5092                        match(LITERAL_this);
5093                        parameterIdent_AST = (AST)currentAST.root;
5094                        break;
5095                }
5096                case IDENT:
5097                {
5098                        {
5099                        AST tmp119_AST = null;
5100                        tmp119_AST = astFactory.create(LT(1));
5101                        astFactory.addASTChild(currentAST, tmp119_AST);
5102                        match(IDENT);
5103                        {
5104                        switch ( LA(1)) {
5105                        case DOT:
5106                        {
5107                                AST tmp120_AST = null;
5108                                tmp120_AST = astFactory.create(LT(1));
5109                                astFactory.makeASTRoot(currentAST, tmp120_AST);
5110                                match(DOT);
5111                                AST tmp121_AST = null;
5112                                tmp121_AST = astFactory.create(LT(1));
5113                                astFactory.addASTChild(currentAST, tmp121_AST);
5114                                match(LITERAL_this);
5115                                break;
5116                        }
5117                        case LBRACK:
5118                        case COMMA:
5119                        case RPAREN:
5120                        case AT:
5121                        {
5122                                break;
5123                        }
5124                        default:
5125                        {
5126                                throw new NoViableAltException(LT(1), getFilename());
5127                        }
5128                        }
5129                        }
5130                        }
5131                        parameterIdent_AST = (AST)currentAST.root;
5132                        break;
5133                }
5134                default:
5135                {
5136                        throw new NoViableAltException(LT(1), getFilename());
5137                }
5138                }
5139                returnAST = parameterIdent_AST;
5140        }
5141        
5142        public final void catchParameterDeclaration() throws RecognitionException, TokenStreamException {
5143                
5144                returnAST = null;
5145                ASTPair currentAST = new ASTPair();
5146                AST catchParameterDeclaration_AST = null;
5147                AST pm_AST = null;
5148                AST mct_AST = null;
5149                Token  id = null;
5150                AST id_AST = null;
5151                
5152                parameterModifier();
5153                pm_AST = (AST)returnAST;
5154                multiCatchTypes();
5155                mct_AST = (AST)returnAST;
5156                id = LT(1);
5157                id_AST = astFactory.create(id);
5158                match(IDENT);
5159                if ( inputState.guessing==0 ) {
5160                        catchParameterDeclaration_AST = (AST)currentAST.root;
5161                        catchParameterDeclaration_AST =
5162                        (AST)astFactory.make( (new ASTArray(4)).add(astFactory.create(PARAMETER_DEF,"PARAMETER_DEF")).add(pm_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(mct_AST))).add(id_AST));
5163                        currentAST.root = catchParameterDeclaration_AST;
5164                        currentAST.child = catchParameterDeclaration_AST!=null &&catchParameterDeclaration_AST.getFirstChild()!=null ?
5165                                catchParameterDeclaration_AST.getFirstChild() : catchParameterDeclaration_AST;
5166                        currentAST.advanceChildToEnd();
5167                }
5168                returnAST = catchParameterDeclaration_AST;
5169        }
5170        
5171        public final void multiCatchTypes() throws RecognitionException, TokenStreamException {
5172                
5173                returnAST = null;
5174                ASTPair currentAST = new ASTPair();
5175                AST multiCatchTypes_AST = null;
5176                
5177                typeSpec(false);
5178                astFactory.addASTChild(currentAST, returnAST);
5179                {
5180                _loop216:
5181                do {
5182                        if ((LA(1)==BOR)) {
5183                                AST tmp122_AST = null;
5184                                tmp122_AST = astFactory.create(LT(1));
5185                                astFactory.makeASTRoot(currentAST, tmp122_AST);
5186                                match(BOR);
5187                                typeSpec(false);
5188                                astFactory.addASTChild(currentAST, returnAST);
5189                        }
5190                        else {
5191                                break _loop216;
5192                        }
5193                        
5194                } while (true);
5195                }
5196                multiCatchTypes_AST = (AST)currentAST.root;
5197                returnAST = multiCatchTypes_AST;
5198        }
5199        
5200        public final void traditionalStatement() throws RecognitionException, TokenStreamException {
5201                
5202                returnAST = null;
5203                ASTPair currentAST = new ASTPair();
5204                AST traditionalStatement_AST = null;
5205                AST m_AST = null;
5206                Token  c = null;
5207                AST c_AST = null;
5208                Token  w = null;
5209                AST w_AST = null;
5210                Token  s = null;
5211                AST s_AST = null;
5212                
5213                switch ( LA(1)) {
5214                case LCURLY:
5215                {
5216                        compoundStatement();
5217                        astFactory.addASTChild(currentAST, returnAST);
5218                        traditionalStatement_AST = (AST)currentAST.root;
5219                        break;
5220                }
5221                case LITERAL_if:
5222                {
5223                        AST tmp123_AST = null;
5224                        tmp123_AST = astFactory.create(LT(1));
5225                        astFactory.makeASTRoot(currentAST, tmp123_AST);
5226                        match(LITERAL_if);
5227                        AST tmp124_AST = null;
5228                        tmp124_AST = astFactory.create(LT(1));
5229                        astFactory.addASTChild(currentAST, tmp124_AST);
5230                        match(LPAREN);
5231                        expression();
5232                        astFactory.addASTChild(currentAST, returnAST);
5233                        AST tmp125_AST = null;
5234                        tmp125_AST = astFactory.create(LT(1));
5235                        astFactory.addASTChild(currentAST, tmp125_AST);
5236                        match(RPAREN);
5237                        statement();
5238                        astFactory.addASTChild(currentAST, returnAST);
5239                        {
5240                        if ((LA(1)==LITERAL_else) && (_tokenSet_39.member(LA(2)))) {
5241                                elseStatement();
5242                                astFactory.addASTChild(currentAST, returnAST);
5243                        }
5244                        else if ((_tokenSet_52.member(LA(1))) && (_tokenSet_53.member(LA(2)))) {
5245                        }
5246                        else {
5247                                throw new NoViableAltException(LT(1), getFilename());
5248                        }
5249                        
5250                        }
5251                        traditionalStatement_AST = (AST)currentAST.root;
5252                        break;
5253                }
5254                case LITERAL_for:
5255                {
5256                        forStatement();
5257                        astFactory.addASTChild(currentAST, returnAST);
5258                        traditionalStatement_AST = (AST)currentAST.root;
5259                        break;
5260                }
5261                case LITERAL_while:
5262                {
5263                        AST tmp126_AST = null;
5264                        tmp126_AST = astFactory.create(LT(1));
5265                        astFactory.makeASTRoot(currentAST, tmp126_AST);
5266                        match(LITERAL_while);
5267                        AST tmp127_AST = null;
5268                        tmp127_AST = astFactory.create(LT(1));
5269                        astFactory.addASTChild(currentAST, tmp127_AST);
5270                        match(LPAREN);
5271                        expression();
5272                        astFactory.addASTChild(currentAST, returnAST);
5273                        AST tmp128_AST = null;
5274                        tmp128_AST = astFactory.create(LT(1));
5275                        astFactory.addASTChild(currentAST, tmp128_AST);
5276                        match(RPAREN);
5277                        statement();
5278                        astFactory.addASTChild(currentAST, returnAST);
5279                        traditionalStatement_AST = (AST)currentAST.root;
5280                        break;
5281                }
5282                case LITERAL_do:
5283                {
5284                        AST tmp129_AST = null;
5285                        tmp129_AST = astFactory.create(LT(1));
5286                        astFactory.makeASTRoot(currentAST, tmp129_AST);
5287                        match(LITERAL_do);
5288                        statement();
5289                        astFactory.addASTChild(currentAST, returnAST);
5290                        w = LT(1);
5291                        w_AST = astFactory.create(w);
5292                        astFactory.addASTChild(currentAST, w_AST);
5293                        match(LITERAL_while);
5294                        if ( inputState.guessing==0 ) {
5295                                w_AST.setType(DO_WHILE);
5296                        }
5297                        AST tmp130_AST = null;
5298                        tmp130_AST = astFactory.create(LT(1));
5299                        astFactory.addASTChild(currentAST, tmp130_AST);
5300                        match(LPAREN);
5301                        expression();
5302                        astFactory.addASTChild(currentAST, returnAST);
5303                        AST tmp131_AST = null;
5304                        tmp131_AST = astFactory.create(LT(1));
5305                        astFactory.addASTChild(currentAST, tmp131_AST);
5306                        match(RPAREN);
5307                        AST tmp132_AST = null;
5308                        tmp132_AST = astFactory.create(LT(1));
5309                        astFactory.addASTChild(currentAST, tmp132_AST);
5310                        match(SEMI);
5311                        traditionalStatement_AST = (AST)currentAST.root;
5312                        break;
5313                }
5314                case LITERAL_break:
5315                {
5316                        AST tmp133_AST = null;
5317                        tmp133_AST = astFactory.create(LT(1));
5318                        astFactory.makeASTRoot(currentAST, tmp133_AST);
5319                        match(LITERAL_break);
5320                        {
5321                        switch ( LA(1)) {
5322                        case IDENT:
5323                        {
5324                                AST tmp134_AST = null;
5325                                tmp134_AST = astFactory.create(LT(1));
5326                                astFactory.addASTChild(currentAST, tmp134_AST);
5327                                match(IDENT);
5328                                break;
5329                        }
5330                        case SEMI:
5331                        {
5332                                break;
5333                        }
5334                        default:
5335                        {
5336                                throw new NoViableAltException(LT(1), getFilename());
5337                        }
5338                        }
5339                        }
5340                        AST tmp135_AST = null;
5341                        tmp135_AST = astFactory.create(LT(1));
5342                        astFactory.addASTChild(currentAST, tmp135_AST);
5343                        match(SEMI);
5344                        traditionalStatement_AST = (AST)currentAST.root;
5345                        break;
5346                }
5347                case LITERAL_continue:
5348                {
5349                        AST tmp136_AST = null;
5350                        tmp136_AST = astFactory.create(LT(1));
5351                        astFactory.makeASTRoot(currentAST, tmp136_AST);
5352                        match(LITERAL_continue);
5353                        {
5354                        switch ( LA(1)) {
5355                        case IDENT:
5356                        {
5357                                AST tmp137_AST = null;
5358                                tmp137_AST = astFactory.create(LT(1));
5359                                astFactory.addASTChild(currentAST, tmp137_AST);
5360                                match(IDENT);
5361                                break;
5362                        }
5363                        case SEMI:
5364                        {
5365                                break;
5366                        }
5367                        default:
5368                        {
5369                                throw new NoViableAltException(LT(1), getFilename());
5370                        }
5371                        }
5372                        }
5373                        AST tmp138_AST = null;
5374                        tmp138_AST = astFactory.create(LT(1));
5375                        astFactory.addASTChild(currentAST, tmp138_AST);
5376                        match(SEMI);
5377                        traditionalStatement_AST = (AST)currentAST.root;
5378                        break;
5379                }
5380                case LITERAL_return:
5381                {
5382                        AST tmp139_AST = null;
5383                        tmp139_AST = astFactory.create(LT(1));
5384                        astFactory.makeASTRoot(currentAST, tmp139_AST);
5385                        match(LITERAL_return);
5386                        {
5387                        switch ( LA(1)) {
5388                        case LITERAL_void:
5389                        case LITERAL_boolean:
5390                        case LITERAL_byte:
5391                        case LITERAL_char:
5392                        case LITERAL_short:
5393                        case LITERAL_int:
5394                        case LITERAL_float:
5395                        case LITERAL_long:
5396                        case LITERAL_double:
5397                        case IDENT:
5398                        case LPAREN:
5399                        case LITERAL_this:
5400                        case LITERAL_super:
5401                        case PLUS:
5402                        case MINUS:
5403                        case INC:
5404                        case DEC:
5405                        case BNOT:
5406                        case LNOT:
5407                        case LITERAL_true:
5408                        case LITERAL_false:
5409                        case LITERAL_null:
5410                        case LITERAL_new:
5411                        case NUM_INT:
5412                        case CHAR_LITERAL:
5413                        case STRING_LITERAL:
5414                        case NUM_FLOAT:
5415                        case NUM_LONG:
5416                        case NUM_DOUBLE:
5417                        case AT:
5418                        {
5419                                expression();
5420                                astFactory.addASTChild(currentAST, returnAST);
5421                                break;
5422                        }
5423                        case SEMI:
5424                        {
5425                                break;
5426                        }
5427                        default:
5428                        {
5429                                throw new NoViableAltException(LT(1), getFilename());
5430                        }
5431                        }
5432                        }
5433                        AST tmp140_AST = null;
5434                        tmp140_AST = astFactory.create(LT(1));
5435                        astFactory.addASTChild(currentAST, tmp140_AST);
5436                        match(SEMI);
5437                        traditionalStatement_AST = (AST)currentAST.root;
5438                        break;
5439                }
5440                case LITERAL_switch:
5441                {
5442                        AST tmp141_AST = null;
5443                        tmp141_AST = astFactory.create(LT(1));
5444                        astFactory.makeASTRoot(currentAST, tmp141_AST);
5445                        match(LITERAL_switch);
5446                        AST tmp142_AST = null;
5447                        tmp142_AST = astFactory.create(LT(1));
5448                        astFactory.addASTChild(currentAST, tmp142_AST);
5449                        match(LPAREN);
5450                        expression();
5451                        astFactory.addASTChild(currentAST, returnAST);
5452                        AST tmp143_AST = null;
5453                        tmp143_AST = astFactory.create(LT(1));
5454                        astFactory.addASTChild(currentAST, tmp143_AST);
5455                        match(RPAREN);
5456                        AST tmp144_AST = null;
5457                        tmp144_AST = astFactory.create(LT(1));
5458                        astFactory.addASTChild(currentAST, tmp144_AST);
5459                        match(LCURLY);
5460                        {
5461                        _loop235:
5462                        do {
5463                                if ((LA(1)==LITERAL_case||LA(1)==LITERAL_default)) {
5464                                        casesGroup();
5465                                        astFactory.addASTChild(currentAST, returnAST);
5466                                }
5467                                else {
5468                                        break _loop235;
5469                                }
5470                                
5471                        } while (true);
5472                        }
5473                        AST tmp145_AST = null;
5474                        tmp145_AST = astFactory.create(LT(1));
5475                        astFactory.addASTChild(currentAST, tmp145_AST);
5476                        match(RCURLY);
5477                        traditionalStatement_AST = (AST)currentAST.root;
5478                        break;
5479                }
5480                case LITERAL_try:
5481                {
5482                        tryBlock();
5483                        astFactory.addASTChild(currentAST, returnAST);
5484                        traditionalStatement_AST = (AST)currentAST.root;
5485                        break;
5486                }
5487                case LITERAL_throw:
5488                {
5489                        AST tmp146_AST = null;
5490                        tmp146_AST = astFactory.create(LT(1));
5491                        astFactory.makeASTRoot(currentAST, tmp146_AST);
5492                        match(LITERAL_throw);
5493                        expression();
5494                        astFactory.addASTChild(currentAST, returnAST);
5495                        AST tmp147_AST = null;
5496                        tmp147_AST = astFactory.create(LT(1));
5497                        astFactory.addASTChild(currentAST, tmp147_AST);
5498                        match(SEMI);
5499                        traditionalStatement_AST = (AST)currentAST.root;
5500                        break;
5501                }
5502                case SEMI:
5503                {
5504                        s = LT(1);
5505                        s_AST = astFactory.create(s);
5506                        astFactory.addASTChild(currentAST, s_AST);
5507                        match(SEMI);
5508                        if ( inputState.guessing==0 ) {
5509                                s_AST.setType(EMPTY_STAT);
5510                        }
5511                        traditionalStatement_AST = (AST)currentAST.root;
5512                        break;
5513                }
5514                default:
5515                        boolean synPredMatched225 = false;
5516                        if (((_tokenSet_54.member(LA(1))) && (_tokenSet_55.member(LA(2))))) {
5517                                int _m225 = mark();
5518                                synPredMatched225 = true;
5519                                inputState.guessing++;
5520                                try {
5521                                        {
5522                                        declaration();
5523                                        }
5524                                }
5525                                catch (RecognitionException pe) {
5526                                        synPredMatched225 = false;
5527                                }
5528                                rewind(_m225);
5529inputState.guessing--;
5530                        }
5531                        if ( synPredMatched225 ) {
5532                                declaration();
5533                                astFactory.addASTChild(currentAST, returnAST);
5534                                AST tmp148_AST = null;
5535                                tmp148_AST = astFactory.create(LT(1));
5536                                astFactory.addASTChild(currentAST, tmp148_AST);
5537                                match(SEMI);
5538                                traditionalStatement_AST = (AST)currentAST.root;
5539                        }
5540                        else {
5541                                boolean synPredMatched228 = false;
5542                                if ((((_tokenSet_14.member(LA(1))) && (_tokenSet_56.member(LA(2))))&&(LA(2) != COLON))) {
5543                                        int _m228 = mark();
5544                                        synPredMatched228 = true;
5545                                        inputState.guessing++;
5546                                        try {
5547                                                {
5548                                                if (!(LA(2) != COLON))
5549                                                  throw new SemanticException("LA(2) != COLON");
5550                                                expression();
5551                                                {
5552                                                if ((LA(1)==SEMI)) {
5553                                                        match(SEMI);
5554                                                }
5555                                                else {
5556                                                }
5557                                                
5558                                                }
5559                                                }
5560                                        }
5561                                        catch (RecognitionException pe) {
5562                                                synPredMatched228 = false;
5563                                        }
5564                                        rewind(_m228);
5565inputState.guessing--;
5566                                }
5567                                if ( synPredMatched228 ) {
5568                                        expression();
5569                                        astFactory.addASTChild(currentAST, returnAST);
5570                                        {
5571                                        if ((LA(1)==SEMI) && (_tokenSet_52.member(LA(2)))) {
5572                                                AST tmp149_AST = null;
5573                                                tmp149_AST = astFactory.create(LT(1));
5574                                                astFactory.addASTChild(currentAST, tmp149_AST);
5575                                                match(SEMI);
5576                                        }
5577                                        else if ((_tokenSet_52.member(LA(1))) && (_tokenSet_53.member(LA(2)))) {
5578                                        }
5579                                        else {
5580                                                throw new NoViableAltException(LT(1), getFilename());
5581                                        }
5582                                        
5583                                        }
5584                                        traditionalStatement_AST = (AST)currentAST.root;
5585                                }
5586                                else if ((_tokenSet_57.member(LA(1))) && (_tokenSet_58.member(LA(2)))) {
5587                                        modifiers();
5588                                        m_AST = (AST)returnAST;
5589                                        classDefinition(m_AST);
5590                                        astFactory.addASTChild(currentAST, returnAST);
5591                                        traditionalStatement_AST = (AST)currentAST.root;
5592                                }
5593                                else if ((LA(1)==IDENT) && (LA(2)==COLON)) {
5594                                        AST tmp150_AST = null;
5595                                        tmp150_AST = astFactory.create(LT(1));
5596                                        astFactory.addASTChild(currentAST, tmp150_AST);
5597                                        match(IDENT);
5598                                        c = LT(1);
5599                                        c_AST = astFactory.create(c);
5600                                        astFactory.makeASTRoot(currentAST, c_AST);
5601                                        match(COLON);
5602                                        if ( inputState.guessing==0 ) {
5603                                                c_AST.setType(LABELED_STAT);
5604                                        }
5605                                        statement();
5606                                        astFactory.addASTChild(currentAST, returnAST);
5607                                        traditionalStatement_AST = (AST)currentAST.root;
5608                                }
5609                                else if ((LA(1)==LITERAL_synchronized) && (LA(2)==LPAREN)) {
5610                                        AST tmp151_AST = null;
5611                                        tmp151_AST = astFactory.create(LT(1));
5612                                        astFactory.makeASTRoot(currentAST, tmp151_AST);
5613                                        match(LITERAL_synchronized);
5614                                        AST tmp152_AST = null;
5615                                        tmp152_AST = astFactory.create(LT(1));
5616                                        astFactory.addASTChild(currentAST, tmp152_AST);
5617                                        match(LPAREN);
5618                                        expression();
5619                                        astFactory.addASTChild(currentAST, returnAST);
5620                                        AST tmp153_AST = null;
5621                                        tmp153_AST = astFactory.create(LT(1));
5622                                        astFactory.addASTChild(currentAST, tmp153_AST);
5623                                        match(RPAREN);
5624                                        compoundStatement();
5625                                        astFactory.addASTChild(currentAST, returnAST);
5626                                        traditionalStatement_AST = (AST)currentAST.root;
5627                                }
5628                        else {
5629                                throw new NoViableAltException(LT(1), getFilename());
5630                        }
5631                        }}
5632                        returnAST = traditionalStatement_AST;
5633                }
5634                
5635        public final void assertStatement() throws RecognitionException, TokenStreamException {
5636                
5637                returnAST = null;
5638                ASTPair currentAST = new ASTPair();
5639                AST assertStatement_AST = null;
5640                
5641                AST tmp154_AST = null;
5642                tmp154_AST = astFactory.create(LT(1));
5643                astFactory.makeASTRoot(currentAST, tmp154_AST);
5644                match(ASSERT);
5645                expression();
5646                astFactory.addASTChild(currentAST, returnAST);
5647                {
5648                switch ( LA(1)) {
5649                case COLON:
5650                {
5651                        AST tmp155_AST = null;
5652                        tmp155_AST = astFactory.create(LT(1));
5653                        astFactory.addASTChild(currentAST, tmp155_AST);
5654                        match(COLON);
5655                        expression();
5656                        astFactory.addASTChild(currentAST, returnAST);
5657                        break;
5658                }
5659                case SEMI:
5660                {
5661                        break;
5662                }
5663                default:
5664                {
5665                        throw new NoViableAltException(LT(1), getFilename());
5666                }
5667                }
5668                }
5669                AST tmp156_AST = null;
5670                tmp156_AST = astFactory.create(LT(1));
5671                astFactory.addASTChild(currentAST, tmp156_AST);
5672                match(SEMI);
5673                assertStatement_AST = (AST)currentAST.root;
5674                returnAST = assertStatement_AST;
5675        }
5676        
5677        public final void elseStatement() throws RecognitionException, TokenStreamException {
5678                
5679                returnAST = null;
5680                ASTPair currentAST = new ASTPair();
5681                AST elseStatement_AST = null;
5682                
5683                AST tmp157_AST = null;
5684                tmp157_AST = astFactory.create(LT(1));
5685                astFactory.makeASTRoot(currentAST, tmp157_AST);
5686                match(LITERAL_else);
5687                statement();
5688                astFactory.addASTChild(currentAST, returnAST);
5689                elseStatement_AST = (AST)currentAST.root;
5690                returnAST = elseStatement_AST;
5691        }
5692        
5693        public final void forStatement() throws RecognitionException, TokenStreamException {
5694                
5695                returnAST = null;
5696                ASTPair currentAST = new ASTPair();
5697                AST forStatement_AST = null;
5698                Token  f = null;
5699                AST f_AST = null;
5700                
5701                f = LT(1);
5702                f_AST = astFactory.create(f);
5703                astFactory.makeASTRoot(currentAST, f_AST);
5704                match(LITERAL_for);
5705                AST tmp158_AST = null;
5706                tmp158_AST = astFactory.create(LT(1));
5707                astFactory.addASTChild(currentAST, tmp158_AST);
5708                match(LPAREN);
5709                {
5710                boolean synPredMatched239 = false;
5711                if (((_tokenSet_59.member(LA(1))) && (_tokenSet_60.member(LA(2))))) {
5712                        int _m239 = mark();
5713                        synPredMatched239 = true;
5714                        inputState.guessing++;
5715                        try {
5716                                {
5717                                forInit();
5718                                match(SEMI);
5719                                }
5720                        }
5721                        catch (RecognitionException pe) {
5722                                synPredMatched239 = false;
5723                        }
5724                        rewind(_m239);
5725inputState.guessing--;
5726                }
5727                if ( synPredMatched239 ) {
5728                        traditionalForClause();
5729                        astFactory.addASTChild(currentAST, returnAST);
5730                }
5731                else if ((_tokenSet_54.member(LA(1))) && (_tokenSet_55.member(LA(2)))) {
5732                        forEachClause();
5733                        astFactory.addASTChild(currentAST, returnAST);
5734                }
5735                else {
5736                        throw new NoViableAltException(LT(1), getFilename());
5737                }
5738                
5739                }
5740                AST tmp159_AST = null;
5741                tmp159_AST = astFactory.create(LT(1));
5742                astFactory.addASTChild(currentAST, tmp159_AST);
5743                match(RPAREN);
5744                statement();
5745                astFactory.addASTChild(currentAST, returnAST);
5746                forStatement_AST = (AST)currentAST.root;
5747                returnAST = forStatement_AST;
5748        }
5749        
5750        public final void casesGroup() throws RecognitionException, TokenStreamException {
5751                
5752                returnAST = null;
5753                ASTPair currentAST = new ASTPair();
5754                AST casesGroup_AST = null;
5755                
5756                {
5757                int _cnt246=0;
5758                _loop246:
5759                do {
5760                        if ((LA(1)==LITERAL_case||LA(1)==LITERAL_default) && (_tokenSet_61.member(LA(2)))) {
5761                                aCase();
5762                                astFactory.addASTChild(currentAST, returnAST);
5763                        }
5764                        else {
5765                                if ( _cnt246>=1 ) { break _loop246; } else {throw new NoViableAltException(LT(1), getFilename());}
5766                        }
5767                        
5768                        _cnt246++;
5769                } while (true);
5770                }
5771                {
5772                if ((_tokenSet_39.member(LA(1))) && (_tokenSet_62.member(LA(2)))) {
5773                        caseSList();
5774                        astFactory.addASTChild(currentAST, returnAST);
5775                }
5776                else if ((_tokenSet_63.member(LA(1))) && (_tokenSet_52.member(LA(2)))) {
5777                }
5778                else {
5779                        throw new NoViableAltException(LT(1), getFilename());
5780                }
5781                
5782                }
5783                if ( inputState.guessing==0 ) {
5784                        casesGroup_AST = (AST)currentAST.root;
5785                        casesGroup_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(CASE_GROUP,"CASE_GROUP")).add(casesGroup_AST));
5786                        currentAST.root = casesGroup_AST;
5787                        currentAST.child = casesGroup_AST!=null &&casesGroup_AST.getFirstChild()!=null ?
5788                                casesGroup_AST.getFirstChild() : casesGroup_AST;
5789                        currentAST.advanceChildToEnd();
5790                }
5791                casesGroup_AST = (AST)currentAST.root;
5792                returnAST = casesGroup_AST;
5793        }
5794        
5795        public final void tryBlock() throws RecognitionException, TokenStreamException {
5796                
5797                returnAST = null;
5798                ASTPair currentAST = new ASTPair();
5799                AST tryBlock_AST = null;
5800                
5801                AST tmp160_AST = null;
5802                tmp160_AST = astFactory.create(LT(1));
5803                astFactory.makeASTRoot(currentAST, tmp160_AST);
5804                match(LITERAL_try);
5805                {
5806                switch ( LA(1)) {
5807                case LPAREN:
5808                {
5809                        resourceSpecification();
5810                        astFactory.addASTChild(currentAST, returnAST);
5811                        break;
5812                }
5813                case LCURLY:
5814                {
5815                        break;
5816                }
5817                default:
5818                {
5819                        throw new NoViableAltException(LT(1), getFilename());
5820                }
5821                }
5822                }
5823                compoundStatement();
5824                astFactory.addASTChild(currentAST, returnAST);
5825                {
5826                _loop264:
5827                do {
5828                        if ((LA(1)==LITERAL_catch)) {
5829                                handler();
5830                                astFactory.addASTChild(currentAST, returnAST);
5831                        }
5832                        else {
5833                                break _loop264;
5834                        }
5835                        
5836                } while (true);
5837                }
5838                {
5839                switch ( LA(1)) {
5840                case LITERAL_finally:
5841                {
5842                        finallyHandler();
5843                        astFactory.addASTChild(currentAST, returnAST);
5844                        break;
5845                }
5846                case FINAL:
5847                case ABSTRACT:
5848                case STRICTFP:
5849                case SEMI:
5850                case LITERAL_void:
5851                case LITERAL_boolean:
5852                case LITERAL_byte:
5853                case LITERAL_char:
5854                case LITERAL_short:
5855                case LITERAL_int:
5856                case LITERAL_float:
5857                case LITERAL_long:
5858                case LITERAL_double:
5859                case IDENT:
5860                case STAR:
5861                case LITERAL_private:
5862                case LITERAL_public:
5863                case LITERAL_protected:
5864                case LITERAL_static:
5865                case LITERAL_transient:
5866                case LITERAL_native:
5867                case LITERAL_synchronized:
5868                case LITERAL_volatile:
5869                case LITERAL_class:
5870                case LCURLY:
5871                case RCURLY:
5872                case LPAREN:
5873                case RPAREN:
5874                case LITERAL_this:
5875                case LITERAL_super:
5876                case COLON:
5877                case LITERAL_if:
5878                case LITERAL_while:
5879                case LITERAL_do:
5880                case LITERAL_break:
5881                case LITERAL_continue:
5882                case LITERAL_return:
5883                case LITERAL_switch:
5884                case LITERAL_throw:
5885                case LITERAL_for:
5886                case LITERAL_else:
5887                case LITERAL_case:
5888                case LITERAL_default:
5889                case LITERAL_try:
5890                case LT:
5891                case GT:
5892                case LE:
5893                case GE:
5894                case LITERAL_instanceof:
5895                case SL:
5896                case SR:
5897                case BSR:
5898                case PLUS:
5899                case MINUS:
5900                case DIV:
5901                case MOD:
5902                case INC:
5903                case DEC:
5904                case BNOT:
5905                case LNOT:
5906                case LITERAL_true:
5907                case LITERAL_false:
5908                case LITERAL_null:
5909                case LITERAL_new:
5910                case NUM_INT:
5911                case CHAR_LITERAL:
5912                case STRING_LITERAL:
5913                case NUM_FLOAT:
5914                case NUM_LONG:
5915                case NUM_DOUBLE:
5916                case ASSERT:
5917                case AT:
5918                {
5919                        break;
5920                }
5921                default:
5922                {
5923                        throw new NoViableAltException(LT(1), getFilename());
5924                }
5925                }
5926                }
5927                tryBlock_AST = (AST)currentAST.root;
5928                returnAST = tryBlock_AST;
5929        }
5930        
5931        public final void forInit() throws RecognitionException, TokenStreamException {
5932                
5933                returnAST = null;
5934                ASTPair currentAST = new ASTPair();
5935                AST forInit_AST = null;
5936                
5937                {
5938                boolean synPredMatched256 = false;
5939                if (((_tokenSet_54.member(LA(1))) && (_tokenSet_55.member(LA(2))))) {
5940                        int _m256 = mark();
5941                        synPredMatched256 = true;
5942                        inputState.guessing++;
5943                        try {
5944                                {
5945                                declaration();
5946                                }
5947                        }
5948                        catch (RecognitionException pe) {
5949                                synPredMatched256 = false;
5950                        }
5951                        rewind(_m256);
5952inputState.guessing--;
5953                }
5954                if ( synPredMatched256 ) {
5955                        declaration();
5956                        astFactory.addASTChild(currentAST, returnAST);
5957                }
5958                else if ((_tokenSet_14.member(LA(1))) && (_tokenSet_64.member(LA(2)))) {
5959                        expressionList();
5960                        astFactory.addASTChild(currentAST, returnAST);
5961                }
5962                else if ((LA(1)==SEMI)) {
5963                }
5964                else {
5965                        throw new NoViableAltException(LT(1), getFilename());
5966                }
5967                
5968                }
5969                if ( inputState.guessing==0 ) {
5970                        forInit_AST = (AST)currentAST.root;
5971                        forInit_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_INIT,"FOR_INIT")).add(forInit_AST));
5972                        currentAST.root = forInit_AST;
5973                        currentAST.child = forInit_AST!=null &&forInit_AST.getFirstChild()!=null ?
5974                                forInit_AST.getFirstChild() : forInit_AST;
5975                        currentAST.advanceChildToEnd();
5976                }
5977                forInit_AST = (AST)currentAST.root;
5978                returnAST = forInit_AST;
5979        }
5980        
5981        public final void traditionalForClause() throws RecognitionException, TokenStreamException {
5982                
5983                returnAST = null;
5984                ASTPair currentAST = new ASTPair();
5985                AST traditionalForClause_AST = null;
5986                
5987                forInit();
5988                astFactory.addASTChild(currentAST, returnAST);
5989                AST tmp161_AST = null;
5990                tmp161_AST = astFactory.create(LT(1));
5991                astFactory.addASTChild(currentAST, tmp161_AST);
5992                match(SEMI);
5993                forCond();
5994                astFactory.addASTChild(currentAST, returnAST);
5995                AST tmp162_AST = null;
5996                tmp162_AST = astFactory.create(LT(1));
5997                astFactory.addASTChild(currentAST, tmp162_AST);
5998                match(SEMI);
5999                forIter();
6000                astFactory.addASTChild(currentAST, returnAST);
6001                traditionalForClause_AST = (AST)currentAST.root;
6002                returnAST = traditionalForClause_AST;
6003        }
6004        
6005        public final void forEachClause() throws RecognitionException, TokenStreamException {
6006                
6007                returnAST = null;
6008                ASTPair currentAST = new ASTPair();
6009                AST forEachClause_AST = null;
6010                
6011                forEachDeclarator();
6012                astFactory.addASTChild(currentAST, returnAST);
6013                AST tmp163_AST = null;
6014                tmp163_AST = astFactory.create(LT(1));
6015                astFactory.addASTChild(currentAST, tmp163_AST);
6016                match(COLON);
6017                expression();
6018                astFactory.addASTChild(currentAST, returnAST);
6019                if ( inputState.guessing==0 ) {
6020                        forEachClause_AST = (AST)currentAST.root;
6021                        forEachClause_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_EACH_CLAUSE,"FOR_EACH_CLAUSE")).add(forEachClause_AST));
6022                        currentAST.root = forEachClause_AST;
6023                        currentAST.child = forEachClause_AST!=null &&forEachClause_AST.getFirstChild()!=null ?
6024                                forEachClause_AST.getFirstChild() : forEachClause_AST;
6025                        currentAST.advanceChildToEnd();
6026                }
6027                forEachClause_AST = (AST)currentAST.root;
6028                returnAST = forEachClause_AST;
6029        }
6030        
6031        public final void forCond() throws RecognitionException, TokenStreamException {
6032                
6033                returnAST = null;
6034                ASTPair currentAST = new ASTPair();
6035                AST forCond_AST = null;
6036                
6037                {
6038                switch ( LA(1)) {
6039                case LITERAL_void:
6040                case LITERAL_boolean:
6041                case LITERAL_byte:
6042                case LITERAL_char:
6043                case LITERAL_short:
6044                case LITERAL_int:
6045                case LITERAL_float:
6046                case LITERAL_long:
6047                case LITERAL_double:
6048                case IDENT:
6049                case LPAREN:
6050                case LITERAL_this:
6051                case LITERAL_super:
6052                case PLUS:
6053                case MINUS:
6054                case INC:
6055                case DEC:
6056                case BNOT:
6057                case LNOT:
6058                case LITERAL_true:
6059                case LITERAL_false:
6060                case LITERAL_null:
6061                case LITERAL_new:
6062                case NUM_INT:
6063                case CHAR_LITERAL:
6064                case STRING_LITERAL:
6065                case NUM_FLOAT:
6066                case NUM_LONG:
6067                case NUM_DOUBLE:
6068                case AT:
6069                {
6070                        expression();
6071                        astFactory.addASTChild(currentAST, returnAST);
6072                        break;
6073                }
6074                case SEMI:
6075                {
6076                        break;
6077                }
6078                default:
6079                {
6080                        throw new NoViableAltException(LT(1), getFilename());
6081                }
6082                }
6083                }
6084                if ( inputState.guessing==0 ) {
6085                        forCond_AST = (AST)currentAST.root;
6086                        forCond_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_CONDITION,"FOR_CONDITION")).add(forCond_AST));
6087                        currentAST.root = forCond_AST;
6088                        currentAST.child = forCond_AST!=null &&forCond_AST.getFirstChild()!=null ?
6089                                forCond_AST.getFirstChild() : forCond_AST;
6090                        currentAST.advanceChildToEnd();
6091                }
6092                forCond_AST = (AST)currentAST.root;
6093                returnAST = forCond_AST;
6094        }
6095        
6096        public final void forIter() throws RecognitionException, TokenStreamException {
6097                
6098                returnAST = null;
6099                ASTPair currentAST = new ASTPair();
6100                AST forIter_AST = null;
6101                
6102                {
6103                switch ( LA(1)) {
6104                case LITERAL_void:
6105                case LITERAL_boolean:
6106                case LITERAL_byte:
6107                case LITERAL_char:
6108                case LITERAL_short:
6109                case LITERAL_int:
6110                case LITERAL_float:
6111                case LITERAL_long:
6112                case LITERAL_double:
6113                case IDENT:
6114                case LPAREN:
6115                case LITERAL_this:
6116                case LITERAL_super:
6117                case PLUS:
6118                case MINUS:
6119                case INC:
6120                case DEC:
6121                case BNOT:
6122                case LNOT:
6123                case LITERAL_true:
6124                case LITERAL_false:
6125                case LITERAL_null:
6126                case LITERAL_new:
6127                case NUM_INT:
6128                case CHAR_LITERAL:
6129                case STRING_LITERAL:
6130                case NUM_FLOAT:
6131                case NUM_LONG:
6132                case NUM_DOUBLE:
6133                case AT:
6134                {
6135                        expressionList();
6136                        astFactory.addASTChild(currentAST, returnAST);
6137                        break;
6138                }
6139                case RPAREN:
6140                {
6141                        break;
6142                }
6143                default:
6144                {
6145                        throw new NoViableAltException(LT(1), getFilename());
6146                }
6147                }
6148                }
6149                if ( inputState.guessing==0 ) {
6150                        forIter_AST = (AST)currentAST.root;
6151                        forIter_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_ITERATOR,"FOR_ITERATOR")).add(forIter_AST));
6152                        currentAST.root = forIter_AST;
6153                        currentAST.child = forIter_AST!=null &&forIter_AST.getFirstChild()!=null ?
6154                                forIter_AST.getFirstChild() : forIter_AST;
6155                        currentAST.advanceChildToEnd();
6156                }
6157                forIter_AST = (AST)currentAST.root;
6158                returnAST = forIter_AST;
6159        }
6160        
6161        public final void forEachDeclarator() throws RecognitionException, TokenStreamException {
6162                
6163                returnAST = null;
6164                ASTPair currentAST = new ASTPair();
6165                AST forEachDeclarator_AST = null;
6166                AST m_AST = null;
6167                AST t_AST = null;
6168                Token  id = null;
6169                AST id_AST = null;
6170                AST d_AST = null;
6171                
6172                modifiers();
6173                m_AST = (AST)returnAST;
6174                typeSpec(false);
6175                t_AST = (AST)returnAST;
6176                id = LT(1);
6177                id_AST = astFactory.create(id);
6178                match(IDENT);
6179                declaratorBrackets(t_AST);
6180                d_AST = (AST)returnAST;
6181                if ( inputState.guessing==0 ) {
6182                        forEachDeclarator_AST = (AST)currentAST.root;
6183                        forEachDeclarator_AST = (AST)astFactory.make( (new ASTArray(4)).add(astFactory.create(VARIABLE_DEF,"VARIABLE_DEF")).add(m_AST).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(d_AST))).add(id_AST));
6184                        currentAST.root = forEachDeclarator_AST;
6185                        currentAST.child = forEachDeclarator_AST!=null &&forEachDeclarator_AST.getFirstChild()!=null ?
6186                                forEachDeclarator_AST.getFirstChild() : forEachDeclarator_AST;
6187                        currentAST.advanceChildToEnd();
6188                }
6189                returnAST = forEachDeclarator_AST;
6190        }
6191        
6192        public final void aCase() throws RecognitionException, TokenStreamException {
6193                
6194                returnAST = null;
6195                ASTPair currentAST = new ASTPair();
6196                AST aCase_AST = null;
6197                
6198                {
6199                switch ( LA(1)) {
6200                case LITERAL_case:
6201                {
6202                        AST tmp164_AST = null;
6203                        tmp164_AST = astFactory.create(LT(1));
6204                        astFactory.makeASTRoot(currentAST, tmp164_AST);
6205                        match(LITERAL_case);
6206                        expression();
6207                        astFactory.addASTChild(currentAST, returnAST);
6208                        break;
6209                }
6210                case LITERAL_default:
6211                {
6212                        AST tmp165_AST = null;
6213                        tmp165_AST = astFactory.create(LT(1));
6214                        astFactory.makeASTRoot(currentAST, tmp165_AST);
6215                        match(LITERAL_default);
6216                        break;
6217                }
6218                default:
6219                {
6220                        throw new NoViableAltException(LT(1), getFilename());
6221                }
6222                }
6223                }
6224                AST tmp166_AST = null;
6225                tmp166_AST = astFactory.create(LT(1));
6226                astFactory.addASTChild(currentAST, tmp166_AST);
6227                match(COLON);
6228                aCase_AST = (AST)currentAST.root;
6229                returnAST = aCase_AST;
6230        }
6231        
6232        public final void caseSList() throws RecognitionException, TokenStreamException {
6233                
6234                returnAST = null;
6235                ASTPair currentAST = new ASTPair();
6236                AST caseSList_AST = null;
6237                
6238                {
6239                int _cnt252=0;
6240                _loop252:
6241                do {
6242                        if (((_tokenSet_39.member(LA(1))) && (_tokenSet_62.member(LA(2))))&&(LA(1)!=LITERAL_default)) {
6243                                statement();
6244                                astFactory.addASTChild(currentAST, returnAST);
6245                        }
6246                        else {
6247                                if ( _cnt252>=1 ) { break _loop252; } else {throw new NoViableAltException(LT(1), getFilename());}
6248                        }
6249                        
6250                        _cnt252++;
6251                } while (true);
6252                }
6253                if ( inputState.guessing==0 ) {
6254                        caseSList_AST = (AST)currentAST.root;
6255                        caseSList_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(SLIST,"SLIST")).add(caseSList_AST));
6256                        currentAST.root = caseSList_AST;
6257                        currentAST.child = caseSList_AST!=null &&caseSList_AST.getFirstChild()!=null ?
6258                                caseSList_AST.getFirstChild() : caseSList_AST;
6259                        currentAST.advanceChildToEnd();
6260                }
6261                caseSList_AST = (AST)currentAST.root;
6262                returnAST = caseSList_AST;
6263        }
6264        
6265        public final void expressionList() throws RecognitionException, TokenStreamException {
6266                
6267                returnAST = null;
6268                ASTPair currentAST = new ASTPair();
6269                AST expressionList_AST = null;
6270                
6271                expression();
6272                astFactory.addASTChild(currentAST, returnAST);
6273                {
6274                _loop285:
6275                do {
6276                        if ((LA(1)==COMMA)) {
6277                                AST tmp167_AST = null;
6278                                tmp167_AST = astFactory.create(LT(1));
6279                                astFactory.addASTChild(currentAST, tmp167_AST);
6280                                match(COMMA);
6281                                expression();
6282                                astFactory.addASTChild(currentAST, returnAST);
6283                        }
6284                        else {
6285                                break _loop285;
6286                        }
6287                        
6288                } while (true);
6289                }
6290                if ( inputState.guessing==0 ) {
6291                        expressionList_AST = (AST)currentAST.root;
6292                        expressionList_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(ELIST,"ELIST")).add(expressionList_AST));
6293                        currentAST.root = expressionList_AST;
6294                        currentAST.child = expressionList_AST!=null &&expressionList_AST.getFirstChild()!=null ?
6295                                expressionList_AST.getFirstChild() : expressionList_AST;
6296                        currentAST.advanceChildToEnd();
6297                }
6298                expressionList_AST = (AST)currentAST.root;
6299                returnAST = expressionList_AST;
6300        }
6301        
6302        public final void resourceSpecification() throws RecognitionException, TokenStreamException {
6303                
6304                returnAST = null;
6305                ASTPair currentAST = new ASTPair();
6306                AST resourceSpecification_AST = null;
6307                
6308                AST tmp168_AST = null;
6309                tmp168_AST = astFactory.create(LT(1));
6310                astFactory.addASTChild(currentAST, tmp168_AST);
6311                match(LPAREN);
6312                resources();
6313                astFactory.addASTChild(currentAST, returnAST);
6314                {
6315                switch ( LA(1)) {
6316                case SEMI:
6317                {
6318                        AST tmp169_AST = null;
6319                        tmp169_AST = astFactory.create(LT(1));
6320                        astFactory.addASTChild(currentAST, tmp169_AST);
6321                        match(SEMI);
6322                        break;
6323                }
6324                case RPAREN:
6325                {
6326                        break;
6327                }
6328                default:
6329                {
6330                        throw new NoViableAltException(LT(1), getFilename());
6331                }
6332                }
6333                }
6334                AST tmp170_AST = null;
6335                tmp170_AST = astFactory.create(LT(1));
6336                astFactory.addASTChild(currentAST, tmp170_AST);
6337                match(RPAREN);
6338                if ( inputState.guessing==0 ) {
6339                        resourceSpecification_AST = (AST)currentAST.root;
6340                        resourceSpecification_AST =
6341                        (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(RESOURCE_SPECIFICATION,"RESOURCE_SPECIFICATION")).add(resourceSpecification_AST));
6342                        currentAST.root = resourceSpecification_AST;
6343                        currentAST.child = resourceSpecification_AST!=null &&resourceSpecification_AST.getFirstChild()!=null ?
6344                                resourceSpecification_AST.getFirstChild() : resourceSpecification_AST;
6345                        currentAST.advanceChildToEnd();
6346                }
6347                resourceSpecification_AST = (AST)currentAST.root;
6348                returnAST = resourceSpecification_AST;
6349        }
6350        
6351        public final void handler() throws RecognitionException, TokenStreamException {
6352                
6353                returnAST = null;
6354                ASTPair currentAST = new ASTPair();
6355                AST handler_AST = null;
6356                
6357                AST tmp171_AST = null;
6358                tmp171_AST = astFactory.create(LT(1));
6359                astFactory.makeASTRoot(currentAST, tmp171_AST);
6360                match(LITERAL_catch);
6361                AST tmp172_AST = null;
6362                tmp172_AST = astFactory.create(LT(1));
6363                astFactory.addASTChild(currentAST, tmp172_AST);
6364                match(LPAREN);
6365                catchParameterDeclaration();
6366                astFactory.addASTChild(currentAST, returnAST);
6367                AST tmp173_AST = null;
6368                tmp173_AST = astFactory.create(LT(1));
6369                astFactory.addASTChild(currentAST, tmp173_AST);
6370                match(RPAREN);
6371                compoundStatement();
6372                astFactory.addASTChild(currentAST, returnAST);
6373                handler_AST = (AST)currentAST.root;
6374                returnAST = handler_AST;
6375        }
6376        
6377        public final void finallyHandler() throws RecognitionException, TokenStreamException {
6378                
6379                returnAST = null;
6380                ASTPair currentAST = new ASTPair();
6381                AST finallyHandler_AST = null;
6382                
6383                AST tmp174_AST = null;
6384                tmp174_AST = astFactory.create(LT(1));
6385                astFactory.makeASTRoot(currentAST, tmp174_AST);
6386                match(LITERAL_finally);
6387                compoundStatement();
6388                astFactory.addASTChild(currentAST, returnAST);
6389                finallyHandler_AST = (AST)currentAST.root;
6390                returnAST = finallyHandler_AST;
6391        }
6392        
6393        public final void resources() throws RecognitionException, TokenStreamException {
6394                
6395                returnAST = null;
6396                ASTPair currentAST = new ASTPair();
6397                AST resources_AST = null;
6398                
6399                resource();
6400                astFactory.addASTChild(currentAST, returnAST);
6401                {
6402                _loop270:
6403                do {
6404                        if ((LA(1)==SEMI) && (_tokenSet_65.member(LA(2)))) {
6405                                AST tmp175_AST = null;
6406                                tmp175_AST = astFactory.create(LT(1));
6407                                astFactory.addASTChild(currentAST, tmp175_AST);
6408                                match(SEMI);
6409                                resource();
6410                                astFactory.addASTChild(currentAST, returnAST);
6411                        }
6412                        else {
6413                                break _loop270;
6414                        }
6415                        
6416                } while (true);
6417                }
6418                if ( inputState.guessing==0 ) {
6419                        resources_AST = (AST)currentAST.root;
6420                        resources_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(RESOURCES,"RESOURCES")).add(resources_AST));
6421                        currentAST.root = resources_AST;
6422                        currentAST.child = resources_AST!=null &&resources_AST.getFirstChild()!=null ?
6423                                resources_AST.getFirstChild() : resources_AST;
6424                        currentAST.advanceChildToEnd();
6425                }
6426                resources_AST = (AST)currentAST.root;
6427                returnAST = resources_AST;
6428        }
6429        
6430        public final void resource() throws RecognitionException, TokenStreamException {
6431                
6432                returnAST = null;
6433                ASTPair currentAST = new ASTPair();
6434                AST resource_AST = null;
6435                
6436                boolean synPredMatched273 = false;
6437                if (((_tokenSet_35.member(LA(1))) && (_tokenSet_66.member(LA(2))))) {
6438                        int _m273 = mark();
6439                        synPredMatched273 = true;
6440                        inputState.guessing++;
6441                        try {
6442                                {
6443                                tryResourceDeclaration();
6444                                }
6445                        }
6446                        catch (RecognitionException pe) {
6447                                synPredMatched273 = false;
6448                        }
6449                        rewind(_m273);
6450inputState.guessing--;
6451                }
6452                if ( synPredMatched273 ) {
6453                        tryResourceDeclaration();
6454                        astFactory.addASTChild(currentAST, returnAST);
6455                        resource_AST = (AST)currentAST.root;
6456                }
6457                else if ((_tokenSet_46.member(LA(1))) && (_tokenSet_67.member(LA(2)))) {
6458                        {
6459                        _loop275:
6460                        do {
6461                                if ((_tokenSet_46.member(LA(1))) && (_tokenSet_47.member(LA(2)))) {
6462                                        primaryExpression();
6463                                        astFactory.addASTChild(currentAST, returnAST);
6464                                        AST tmp176_AST = null;
6465                                        tmp176_AST = astFactory.create(LT(1));
6466                                        astFactory.makeASTRoot(currentAST, tmp176_AST);
6467                                        match(DOT);
6468                                }
6469                                else {
6470                                        break _loop275;
6471                                }
6472                                
6473                        } while (true);
6474                        }
6475                        AST tmp177_AST = null;
6476                        tmp177_AST = astFactory.create(LT(1));
6477                        astFactory.addASTChild(currentAST, tmp177_AST);
6478                        match(IDENT);
6479                        if ( inputState.guessing==0 ) {
6480                                resource_AST = (AST)currentAST.root;
6481                                resource_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(RESOURCE,"RESOURCE")).add(resource_AST));
6482                                currentAST.root = resource_AST;
6483                                currentAST.child = resource_AST!=null &&resource_AST.getFirstChild()!=null ?
6484                                        resource_AST.getFirstChild() : resource_AST;
6485                                currentAST.advanceChildToEnd();
6486                        }
6487                        resource_AST = (AST)currentAST.root;
6488                }
6489                else {
6490                        throw new NoViableAltException(LT(1), getFilename());
6491                }
6492                
6493                returnAST = resource_AST;
6494        }
6495        
6496        public final void tryResourceDeclaration() throws RecognitionException, TokenStreamException {
6497                
6498                returnAST = null;
6499                ASTPair currentAST = new ASTPair();
6500                AST tryResourceDeclaration_AST = null;
6501                AST m_AST = null;
6502                AST t_AST = null;
6503                AST v_AST = null;
6504                
6505                parameterModifier();
6506                m_AST = (AST)returnAST;
6507                typeSpec(false);
6508                t_AST = (AST)returnAST;
6509                tryResourceDeclarator((AST) getASTFactory().dupTree(m_AST),
6510                                    //dupList as this also copies siblings (like TYPE_ARGUMENTS)
6511                                    (AST) getASTFactory().dupList(t_AST));
6512                v_AST = (AST)returnAST;
6513                if ( inputState.guessing==0 ) {
6514                        tryResourceDeclaration_AST = (AST)currentAST.root;
6515                        tryResourceDeclaration_AST = v_AST;
6516                        currentAST.root = tryResourceDeclaration_AST;
6517                        currentAST.child = tryResourceDeclaration_AST!=null &&tryResourceDeclaration_AST.getFirstChild()!=null ?
6518                                tryResourceDeclaration_AST.getFirstChild() : tryResourceDeclaration_AST;
6519                        currentAST.advanceChildToEnd();
6520                }
6521                returnAST = tryResourceDeclaration_AST;
6522        }
6523        
6524        public final void tryResourceDeclarator(
6525                AST mods, AST t
6526        ) throws RecognitionException, TokenStreamException {
6527                
6528                returnAST = null;
6529                ASTPair currentAST = new ASTPair();
6530                AST tryResourceDeclarator_AST = null;
6531                Token  id = null;
6532                AST id_AST = null;
6533                AST d_AST = null;
6534                AST v_AST = null;
6535                
6536                id = LT(1);
6537                id_AST = astFactory.create(id);
6538                match(IDENT);
6539                declaratorBrackets(t);
6540                d_AST = (AST)returnAST;
6541                varInitializer();
6542                v_AST = (AST)returnAST;
6543                if ( inputState.guessing==0 ) {
6544                        tryResourceDeclarator_AST = (AST)currentAST.root;
6545                        tryResourceDeclarator_AST = (AST)astFactory.make( (new ASTArray(5)).add(astFactory.create(RESOURCE,"RESOURCE")).add(mods).add((AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(d_AST))).add(id_AST).add(v_AST));
6546                        currentAST.root = tryResourceDeclarator_AST;
6547                        currentAST.child = tryResourceDeclarator_AST!=null &&tryResourceDeclarator_AST.getFirstChild()!=null ?
6548                                tryResourceDeclarator_AST.getFirstChild() : tryResourceDeclarator_AST;
6549                        currentAST.advanceChildToEnd();
6550                }
6551                returnAST = tryResourceDeclarator_AST;
6552        }
6553        
6554        public final void lambdaExpression() throws RecognitionException, TokenStreamException {
6555                
6556                returnAST = null;
6557                ASTPair currentAST = new ASTPair();
6558                AST lambdaExpression_AST = null;
6559                
6560                lambdaParameters();
6561                astFactory.addASTChild(currentAST, returnAST);
6562                AST tmp178_AST = null;
6563                tmp178_AST = astFactory.create(LT(1));
6564                astFactory.makeASTRoot(currentAST, tmp178_AST);
6565                match(LAMBDA);
6566                lambdaBody();
6567                astFactory.addASTChild(currentAST, returnAST);
6568                lambdaExpression_AST = (AST)currentAST.root;
6569                returnAST = lambdaExpression_AST;
6570        }
6571        
6572        public final void assignmentExpression() throws RecognitionException, TokenStreamException {
6573                
6574                returnAST = null;
6575                ASTPair currentAST = new ASTPair();
6576                AST assignmentExpression_AST = null;
6577                
6578                conditionalExpression();
6579                astFactory.addASTChild(currentAST, returnAST);
6580                {
6581                switch ( LA(1)) {
6582                case ASSIGN:
6583                case PLUS_ASSIGN:
6584                case MINUS_ASSIGN:
6585                case STAR_ASSIGN:
6586                case DIV_ASSIGN:
6587                case MOD_ASSIGN:
6588                case SR_ASSIGN:
6589                case BSR_ASSIGN:
6590                case SL_ASSIGN:
6591                case BAND_ASSIGN:
6592                case BXOR_ASSIGN:
6593                case BOR_ASSIGN:
6594                {
6595                        {
6596                        switch ( LA(1)) {
6597                        case ASSIGN:
6598                        {
6599                                AST tmp179_AST = null;
6600                                tmp179_AST = astFactory.create(LT(1));
6601                                astFactory.makeASTRoot(currentAST, tmp179_AST);
6602                                match(ASSIGN);
6603                                break;
6604                        }
6605                        case PLUS_ASSIGN:
6606                        {
6607                                AST tmp180_AST = null;
6608                                tmp180_AST = astFactory.create(LT(1));
6609                                astFactory.makeASTRoot(currentAST, tmp180_AST);
6610                                match(PLUS_ASSIGN);
6611                                break;
6612                        }
6613                        case MINUS_ASSIGN:
6614                        {
6615                                AST tmp181_AST = null;
6616                                tmp181_AST = astFactory.create(LT(1));
6617                                astFactory.makeASTRoot(currentAST, tmp181_AST);
6618                                match(MINUS_ASSIGN);
6619                                break;
6620                        }
6621                        case STAR_ASSIGN:
6622                        {
6623                                AST tmp182_AST = null;
6624                                tmp182_AST = astFactory.create(LT(1));
6625                                astFactory.makeASTRoot(currentAST, tmp182_AST);
6626                                match(STAR_ASSIGN);
6627                                break;
6628                        }
6629                        case DIV_ASSIGN:
6630                        {
6631                                AST tmp183_AST = null;
6632                                tmp183_AST = astFactory.create(LT(1));
6633                                astFactory.makeASTRoot(currentAST, tmp183_AST);
6634                                match(DIV_ASSIGN);
6635                                break;
6636                        }
6637                        case MOD_ASSIGN:
6638                        {
6639                                AST tmp184_AST = null;
6640                                tmp184_AST = astFactory.create(LT(1));
6641                                astFactory.makeASTRoot(currentAST, tmp184_AST);
6642                                match(MOD_ASSIGN);
6643                                break;
6644                        }
6645                        case SR_ASSIGN:
6646                        {
6647                                AST tmp185_AST = null;
6648                                tmp185_AST = astFactory.create(LT(1));
6649                                astFactory.makeASTRoot(currentAST, tmp185_AST);
6650                                match(SR_ASSIGN);
6651                                break;
6652                        }
6653                        case BSR_ASSIGN:
6654                        {
6655                                AST tmp186_AST = null;
6656                                tmp186_AST = astFactory.create(LT(1));
6657                                astFactory.makeASTRoot(currentAST, tmp186_AST);
6658                                match(BSR_ASSIGN);
6659                                break;
6660                        }
6661                        case SL_ASSIGN:
6662                        {
6663                                AST tmp187_AST = null;
6664                                tmp187_AST = astFactory.create(LT(1));
6665                                astFactory.makeASTRoot(currentAST, tmp187_AST);
6666                                match(SL_ASSIGN);
6667                                break;
6668                        }
6669                        case BAND_ASSIGN:
6670                        {
6671                                AST tmp188_AST = null;
6672                                tmp188_AST = astFactory.create(LT(1));
6673                                astFactory.makeASTRoot(currentAST, tmp188_AST);
6674                                match(BAND_ASSIGN);
6675                                break;
6676                        }
6677                        case BXOR_ASSIGN:
6678                        {
6679                                AST tmp189_AST = null;
6680                                tmp189_AST = astFactory.create(LT(1));
6681                                astFactory.makeASTRoot(currentAST, tmp189_AST);
6682                                match(BXOR_ASSIGN);
6683                                break;
6684                        }
6685                        case BOR_ASSIGN:
6686                        {
6687                                AST tmp190_AST = null;
6688                                tmp190_AST = astFactory.create(LT(1));
6689                                astFactory.makeASTRoot(currentAST, tmp190_AST);
6690                                match(BOR_ASSIGN);
6691                                break;
6692                        }
6693                        default:
6694                        {
6695                                throw new NoViableAltException(LT(1), getFilename());
6696                        }
6697                        }
6698                        }
6699                        {
6700                        boolean synPredMatched291 = false;
6701                        if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
6702                                int _m291 = mark();
6703                                synPredMatched291 = true;
6704                                inputState.guessing++;
6705                                try {
6706                                        {
6707                                        lambdaExpression();
6708                                        }
6709                                }
6710                                catch (RecognitionException pe) {
6711                                        synPredMatched291 = false;
6712                                }
6713                                rewind(_m291);
6714inputState.guessing--;
6715                        }
6716                        if ( synPredMatched291 ) {
6717                                lambdaExpression();
6718                                astFactory.addASTChild(currentAST, returnAST);
6719                        }
6720                        else if ((_tokenSet_14.member(LA(1))) && (_tokenSet_19.member(LA(2)))) {
6721                                assignmentExpression();
6722                                astFactory.addASTChild(currentAST, returnAST);
6723                        }
6724                        else {
6725                                throw new NoViableAltException(LT(1), getFilename());
6726                        }
6727                        
6728                        }
6729                        break;
6730                }
6731                case FINAL:
6732                case ABSTRACT:
6733                case STRICTFP:
6734                case SEMI:
6735                case RBRACK:
6736                case LITERAL_void:
6737                case LITERAL_boolean:
6738                case LITERAL_byte:
6739                case LITERAL_char:
6740                case LITERAL_short:
6741                case LITERAL_int:
6742                case LITERAL_float:
6743                case LITERAL_long:
6744                case LITERAL_double:
6745                case IDENT:
6746                case STAR:
6747                case LITERAL_private:
6748                case LITERAL_public:
6749                case LITERAL_protected:
6750                case LITERAL_static:
6751                case LITERAL_transient:
6752                case LITERAL_native:
6753                case LITERAL_synchronized:
6754                case LITERAL_volatile:
6755                case LITERAL_class:
6756                case LITERAL_interface:
6757                case LCURLY:
6758                case RCURLY:
6759                case COMMA:
6760                case LPAREN:
6761                case RPAREN:
6762                case LITERAL_this:
6763                case LITERAL_super:
6764                case COLON:
6765                case LITERAL_if:
6766                case LITERAL_while:
6767                case LITERAL_do:
6768                case LITERAL_break:
6769                case LITERAL_continue:
6770                case LITERAL_return:
6771                case LITERAL_switch:
6772                case LITERAL_throw:
6773                case LITERAL_for:
6774                case LITERAL_else:
6775                case LITERAL_case:
6776                case LITERAL_default:
6777                case LITERAL_try:
6778                case LT:
6779                case GT:
6780                case LE:
6781                case GE:
6782                case LITERAL_instanceof:
6783                case SL:
6784                case SR:
6785                case BSR:
6786                case PLUS:
6787                case MINUS:
6788                case DIV:
6789                case MOD:
6790                case INC:
6791                case DEC:
6792                case BNOT:
6793                case LNOT:
6794                case LITERAL_true:
6795                case LITERAL_false:
6796                case LITERAL_null:
6797                case LITERAL_new:
6798                case NUM_INT:
6799                case CHAR_LITERAL:
6800                case STRING_LITERAL:
6801                case NUM_FLOAT:
6802                case NUM_LONG:
6803                case NUM_DOUBLE:
6804                case ASSERT:
6805                case ENUM:
6806                case AT:
6807                {
6808                        break;
6809                }
6810                default:
6811                {
6812                        throw new NoViableAltException(LT(1), getFilename());
6813                }
6814                }
6815                }
6816                assignmentExpression_AST = (AST)currentAST.root;
6817                returnAST = assignmentExpression_AST;
6818        }
6819        
6820        public final void logicalOrExpression() throws RecognitionException, TokenStreamException {
6821                
6822                returnAST = null;
6823                ASTPair currentAST = new ASTPair();
6824                AST logicalOrExpression_AST = null;
6825                
6826                logicalAndExpression();
6827                astFactory.addASTChild(currentAST, returnAST);
6828                {
6829                _loop302:
6830                do {
6831                        if ((LA(1)==LOR)) {
6832                                AST tmp191_AST = null;
6833                                tmp191_AST = astFactory.create(LT(1));
6834                                astFactory.makeASTRoot(currentAST, tmp191_AST);
6835                                match(LOR);
6836                                logicalAndExpression();
6837                                astFactory.addASTChild(currentAST, returnAST);
6838                        }
6839                        else {
6840                                break _loop302;
6841                        }
6842                        
6843                } while (true);
6844                }
6845                logicalOrExpression_AST = (AST)currentAST.root;
6846                returnAST = logicalOrExpression_AST;
6847        }
6848        
6849        public final void logicalAndExpression() throws RecognitionException, TokenStreamException {
6850                
6851                returnAST = null;
6852                ASTPair currentAST = new ASTPair();
6853                AST logicalAndExpression_AST = null;
6854                
6855                inclusiveOrExpression();
6856                astFactory.addASTChild(currentAST, returnAST);
6857                {
6858                _loop305:
6859                do {
6860                        if ((LA(1)==LAND)) {
6861                                AST tmp192_AST = null;
6862                                tmp192_AST = astFactory.create(LT(1));
6863                                astFactory.makeASTRoot(currentAST, tmp192_AST);
6864                                match(LAND);
6865                                inclusiveOrExpression();
6866                                astFactory.addASTChild(currentAST, returnAST);
6867                        }
6868                        else {
6869                                break _loop305;
6870                        }
6871                        
6872                } while (true);
6873                }
6874                logicalAndExpression_AST = (AST)currentAST.root;
6875                returnAST = logicalAndExpression_AST;
6876        }
6877        
6878        public final void inclusiveOrExpression() throws RecognitionException, TokenStreamException {
6879                
6880                returnAST = null;
6881                ASTPair currentAST = new ASTPair();
6882                AST inclusiveOrExpression_AST = null;
6883                
6884                exclusiveOrExpression();
6885                astFactory.addASTChild(currentAST, returnAST);
6886                {
6887                _loop308:
6888                do {
6889                        if ((LA(1)==BOR)) {
6890                                AST tmp193_AST = null;
6891                                tmp193_AST = astFactory.create(LT(1));
6892                                astFactory.makeASTRoot(currentAST, tmp193_AST);
6893                                match(BOR);
6894                                exclusiveOrExpression();
6895                                astFactory.addASTChild(currentAST, returnAST);
6896                        }
6897                        else {
6898                                break _loop308;
6899                        }
6900                        
6901                } while (true);
6902                }
6903                inclusiveOrExpression_AST = (AST)currentAST.root;
6904                returnAST = inclusiveOrExpression_AST;
6905        }
6906        
6907        public final void exclusiveOrExpression() throws RecognitionException, TokenStreamException {
6908                
6909                returnAST = null;
6910                ASTPair currentAST = new ASTPair();
6911                AST exclusiveOrExpression_AST = null;
6912                
6913                andExpression();
6914                astFactory.addASTChild(currentAST, returnAST);
6915                {
6916                _loop311:
6917                do {
6918                        if ((LA(1)==BXOR)) {
6919                                AST tmp194_AST = null;
6920                                tmp194_AST = astFactory.create(LT(1));
6921                                astFactory.makeASTRoot(currentAST, tmp194_AST);
6922                                match(BXOR);
6923                                andExpression();
6924                                astFactory.addASTChild(currentAST, returnAST);
6925                        }
6926                        else {
6927                                break _loop311;
6928                        }
6929                        
6930                } while (true);
6931                }
6932                exclusiveOrExpression_AST = (AST)currentAST.root;
6933                returnAST = exclusiveOrExpression_AST;
6934        }
6935        
6936        public final void andExpression() throws RecognitionException, TokenStreamException {
6937                
6938                returnAST = null;
6939                ASTPair currentAST = new ASTPair();
6940                AST andExpression_AST = null;
6941                
6942                equalityExpression();
6943                astFactory.addASTChild(currentAST, returnAST);
6944                {
6945                _loop314:
6946                do {
6947                        if ((LA(1)==BAND)) {
6948                                AST tmp195_AST = null;
6949                                tmp195_AST = astFactory.create(LT(1));
6950                                astFactory.makeASTRoot(currentAST, tmp195_AST);
6951                                match(BAND);
6952                                equalityExpression();
6953                                astFactory.addASTChild(currentAST, returnAST);
6954                        }
6955                        else {
6956                                break _loop314;
6957                        }
6958                        
6959                } while (true);
6960                }
6961                andExpression_AST = (AST)currentAST.root;
6962                returnAST = andExpression_AST;
6963        }
6964        
6965        public final void equalityExpression() throws RecognitionException, TokenStreamException {
6966                
6967                returnAST = null;
6968                ASTPair currentAST = new ASTPair();
6969                AST equalityExpression_AST = null;
6970                
6971                relationalExpression();
6972                astFactory.addASTChild(currentAST, returnAST);
6973                {
6974                _loop318:
6975                do {
6976                        if ((LA(1)==NOT_EQUAL||LA(1)==EQUAL)) {
6977                                {
6978                                switch ( LA(1)) {
6979                                case NOT_EQUAL:
6980                                {
6981                                        AST tmp196_AST = null;
6982                                        tmp196_AST = astFactory.create(LT(1));
6983                                        astFactory.makeASTRoot(currentAST, tmp196_AST);
6984                                        match(NOT_EQUAL);
6985                                        break;
6986                                }
6987                                case EQUAL:
6988                                {
6989                                        AST tmp197_AST = null;
6990                                        tmp197_AST = astFactory.create(LT(1));
6991                                        astFactory.makeASTRoot(currentAST, tmp197_AST);
6992                                        match(EQUAL);
6993                                        break;
6994                                }
6995                                default:
6996                                {
6997                                        throw new NoViableAltException(LT(1), getFilename());
6998                                }
6999                                }
7000                                }
7001                                relationalExpression();
7002                                astFactory.addASTChild(currentAST, returnAST);
7003                        }
7004                        else {
7005                                break _loop318;
7006                        }
7007                        
7008                } while (true);
7009                }
7010                equalityExpression_AST = (AST)currentAST.root;
7011                returnAST = equalityExpression_AST;
7012        }
7013        
7014        public final void relationalExpression() throws RecognitionException, TokenStreamException {
7015                
7016                returnAST = null;
7017                ASTPair currentAST = new ASTPair();
7018                AST relationalExpression_AST = null;
7019                
7020                shiftExpression();
7021                astFactory.addASTChild(currentAST, returnAST);
7022                {
7023                if ((LA(1)==LITERAL_instanceof) && (_tokenSet_10.member(LA(2)))) {
7024                        AST tmp198_AST = null;
7025                        tmp198_AST = astFactory.create(LT(1));
7026                        astFactory.makeASTRoot(currentAST, tmp198_AST);
7027                        match(LITERAL_instanceof);
7028                        typeSpec(true);
7029                        astFactory.addASTChild(currentAST, returnAST);
7030                }
7031                else if ((_tokenSet_68.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7032                }
7033                else {
7034                        throw new NoViableAltException(LT(1), getFilename());
7035                }
7036                
7037                }
7038                {
7039                {
7040                _loop324:
7041                do {
7042                        if (((LA(1) >= LT && LA(1) <= GE)) && (_tokenSet_14.member(LA(2)))) {
7043                                {
7044                                switch ( LA(1)) {
7045                                case LT:
7046                                {
7047                                        AST tmp199_AST = null;
7048                                        tmp199_AST = astFactory.create(LT(1));
7049                                        astFactory.makeASTRoot(currentAST, tmp199_AST);
7050                                        match(LT);
7051                                        break;
7052                                }
7053                                case GT:
7054                                {
7055                                        AST tmp200_AST = null;
7056                                        tmp200_AST = astFactory.create(LT(1));
7057                                        astFactory.makeASTRoot(currentAST, tmp200_AST);
7058                                        match(GT);
7059                                        break;
7060                                }
7061                                case LE:
7062                                {
7063                                        AST tmp201_AST = null;
7064                                        tmp201_AST = astFactory.create(LT(1));
7065                                        astFactory.makeASTRoot(currentAST, tmp201_AST);
7066                                        match(LE);
7067                                        break;
7068                                }
7069                                case GE:
7070                                {
7071                                        AST tmp202_AST = null;
7072                                        tmp202_AST = astFactory.create(LT(1));
7073                                        astFactory.makeASTRoot(currentAST, tmp202_AST);
7074                                        match(GE);
7075                                        break;
7076                                }
7077                                default:
7078                                {
7079                                        throw new NoViableAltException(LT(1), getFilename());
7080                                }
7081                                }
7082                                }
7083                                shiftExpression();
7084                                astFactory.addASTChild(currentAST, returnAST);
7085                        }
7086                        else {
7087                                break _loop324;
7088                        }
7089                        
7090                } while (true);
7091                }
7092                }
7093                relationalExpression_AST = (AST)currentAST.root;
7094                returnAST = relationalExpression_AST;
7095        }
7096        
7097        public final void shiftExpression() throws RecognitionException, TokenStreamException {
7098                
7099                returnAST = null;
7100                ASTPair currentAST = new ASTPair();
7101                AST shiftExpression_AST = null;
7102                
7103                additiveExpression();
7104                astFactory.addASTChild(currentAST, returnAST);
7105                {
7106                _loop328:
7107                do {
7108                        if (((LA(1) >= SL && LA(1) <= BSR)) && (_tokenSet_14.member(LA(2)))) {
7109                                {
7110                                switch ( LA(1)) {
7111                                case SL:
7112                                {
7113                                        AST tmp203_AST = null;
7114                                        tmp203_AST = astFactory.create(LT(1));
7115                                        astFactory.makeASTRoot(currentAST, tmp203_AST);
7116                                        match(SL);
7117                                        break;
7118                                }
7119                                case SR:
7120                                {
7121                                        AST tmp204_AST = null;
7122                                        tmp204_AST = astFactory.create(LT(1));
7123                                        astFactory.makeASTRoot(currentAST, tmp204_AST);
7124                                        match(SR);
7125                                        break;
7126                                }
7127                                case BSR:
7128                                {
7129                                        AST tmp205_AST = null;
7130                                        tmp205_AST = astFactory.create(LT(1));
7131                                        astFactory.makeASTRoot(currentAST, tmp205_AST);
7132                                        match(BSR);
7133                                        break;
7134                                }
7135                                default:
7136                                {
7137                                        throw new NoViableAltException(LT(1), getFilename());
7138                                }
7139                                }
7140                                }
7141                                additiveExpression();
7142                                astFactory.addASTChild(currentAST, returnAST);
7143                        }
7144                        else {
7145                                break _loop328;
7146                        }
7147                        
7148                } while (true);
7149                }
7150                shiftExpression_AST = (AST)currentAST.root;
7151                returnAST = shiftExpression_AST;
7152        }
7153        
7154        public final void additiveExpression() throws RecognitionException, TokenStreamException {
7155                
7156                returnAST = null;
7157                ASTPair currentAST = new ASTPair();
7158                AST additiveExpression_AST = null;
7159                
7160                multiplicativeExpression();
7161                astFactory.addASTChild(currentAST, returnAST);
7162                {
7163                _loop332:
7164                do {
7165                        if ((LA(1)==PLUS||LA(1)==MINUS) && (_tokenSet_14.member(LA(2)))) {
7166                                {
7167                                switch ( LA(1)) {
7168                                case PLUS:
7169                                {
7170                                        AST tmp206_AST = null;
7171                                        tmp206_AST = astFactory.create(LT(1));
7172                                        astFactory.makeASTRoot(currentAST, tmp206_AST);
7173                                        match(PLUS);
7174                                        break;
7175                                }
7176                                case MINUS:
7177                                {
7178                                        AST tmp207_AST = null;
7179                                        tmp207_AST = astFactory.create(LT(1));
7180                                        astFactory.makeASTRoot(currentAST, tmp207_AST);
7181                                        match(MINUS);
7182                                        break;
7183                                }
7184                                default:
7185                                {
7186                                        throw new NoViableAltException(LT(1), getFilename());
7187                                }
7188                                }
7189                                }
7190                                multiplicativeExpression();
7191                                astFactory.addASTChild(currentAST, returnAST);
7192                        }
7193                        else {
7194                                break _loop332;
7195                        }
7196                        
7197                } while (true);
7198                }
7199                additiveExpression_AST = (AST)currentAST.root;
7200                returnAST = additiveExpression_AST;
7201        }
7202        
7203        public final void multiplicativeExpression() throws RecognitionException, TokenStreamException {
7204                
7205                returnAST = null;
7206                ASTPair currentAST = new ASTPair();
7207                AST multiplicativeExpression_AST = null;
7208                
7209                unaryExpression();
7210                astFactory.addASTChild(currentAST, returnAST);
7211                {
7212                _loop336:
7213                do {
7214                        if ((_tokenSet_69.member(LA(1))) && (_tokenSet_14.member(LA(2)))) {
7215                                {
7216                                switch ( LA(1)) {
7217                                case STAR:
7218                                {
7219                                        AST tmp208_AST = null;
7220                                        tmp208_AST = astFactory.create(LT(1));
7221                                        astFactory.makeASTRoot(currentAST, tmp208_AST);
7222                                        match(STAR);
7223                                        break;
7224                                }
7225                                case DIV:
7226                                {
7227                                        AST tmp209_AST = null;
7228                                        tmp209_AST = astFactory.create(LT(1));
7229                                        astFactory.makeASTRoot(currentAST, tmp209_AST);
7230                                        match(DIV);
7231                                        break;
7232                                }
7233                                case MOD:
7234                                {
7235                                        AST tmp210_AST = null;
7236                                        tmp210_AST = astFactory.create(LT(1));
7237                                        astFactory.makeASTRoot(currentAST, tmp210_AST);
7238                                        match(MOD);
7239                                        break;
7240                                }
7241                                default:
7242                                {
7243                                        throw new NoViableAltException(LT(1), getFilename());
7244                                }
7245                                }
7246                                }
7247                                unaryExpression();
7248                                astFactory.addASTChild(currentAST, returnAST);
7249                        }
7250                        else {
7251                                break _loop336;
7252                        }
7253                        
7254                } while (true);
7255                }
7256                multiplicativeExpression_AST = (AST)currentAST.root;
7257                returnAST = multiplicativeExpression_AST;
7258        }
7259        
7260        public final void unaryExpression() throws RecognitionException, TokenStreamException {
7261                
7262                returnAST = null;
7263                ASTPair currentAST = new ASTPair();
7264                AST unaryExpression_AST = null;
7265                
7266                switch ( LA(1)) {
7267                case INC:
7268                {
7269                        AST tmp211_AST = null;
7270                        tmp211_AST = astFactory.create(LT(1));
7271                        astFactory.makeASTRoot(currentAST, tmp211_AST);
7272                        match(INC);
7273                        unaryExpression();
7274                        astFactory.addASTChild(currentAST, returnAST);
7275                        unaryExpression_AST = (AST)currentAST.root;
7276                        break;
7277                }
7278                case DEC:
7279                {
7280                        AST tmp212_AST = null;
7281                        tmp212_AST = astFactory.create(LT(1));
7282                        astFactory.makeASTRoot(currentAST, tmp212_AST);
7283                        match(DEC);
7284                        unaryExpression();
7285                        astFactory.addASTChild(currentAST, returnAST);
7286                        unaryExpression_AST = (AST)currentAST.root;
7287                        break;
7288                }
7289                case MINUS:
7290                {
7291                        AST tmp213_AST = null;
7292                        tmp213_AST = astFactory.create(LT(1));
7293                        astFactory.makeASTRoot(currentAST, tmp213_AST);
7294                        match(MINUS);
7295                        if ( inputState.guessing==0 ) {
7296                                tmp213_AST.setType(UNARY_MINUS);
7297                        }
7298                        unaryExpression();
7299                        astFactory.addASTChild(currentAST, returnAST);
7300                        unaryExpression_AST = (AST)currentAST.root;
7301                        break;
7302                }
7303                case PLUS:
7304                {
7305                        AST tmp214_AST = null;
7306                        tmp214_AST = astFactory.create(LT(1));
7307                        astFactory.makeASTRoot(currentAST, tmp214_AST);
7308                        match(PLUS);
7309                        if ( inputState.guessing==0 ) {
7310                                tmp214_AST.setType(UNARY_PLUS);
7311                        }
7312                        unaryExpression();
7313                        astFactory.addASTChild(currentAST, returnAST);
7314                        unaryExpression_AST = (AST)currentAST.root;
7315                        break;
7316                }
7317                case LITERAL_void:
7318                case LITERAL_boolean:
7319                case LITERAL_byte:
7320                case LITERAL_char:
7321                case LITERAL_short:
7322                case LITERAL_int:
7323                case LITERAL_float:
7324                case LITERAL_long:
7325                case LITERAL_double:
7326                case IDENT:
7327                case LPAREN:
7328                case LITERAL_this:
7329                case LITERAL_super:
7330                case BNOT:
7331                case LNOT:
7332                case LITERAL_true:
7333                case LITERAL_false:
7334                case LITERAL_null:
7335                case LITERAL_new:
7336                case NUM_INT:
7337                case CHAR_LITERAL:
7338                case STRING_LITERAL:
7339                case NUM_FLOAT:
7340                case NUM_LONG:
7341                case NUM_DOUBLE:
7342                case AT:
7343                {
7344                        unaryExpressionNotPlusMinus();
7345                        astFactory.addASTChild(currentAST, returnAST);
7346                        unaryExpression_AST = (AST)currentAST.root;
7347                        break;
7348                }
7349                default:
7350                {
7351                        throw new NoViableAltException(LT(1), getFilename());
7352                }
7353                }
7354                returnAST = unaryExpression_AST;
7355        }
7356        
7357        public final void unaryExpressionNotPlusMinus() throws RecognitionException, TokenStreamException {
7358                
7359                returnAST = null;
7360                ASTPair currentAST = new ASTPair();
7361                AST unaryExpressionNotPlusMinus_AST = null;
7362                Token  lpb = null;
7363                AST lpb_AST = null;
7364                Token  lp = null;
7365                AST lp_AST = null;
7366                Token  lpl = null;
7367                AST lpl_AST = null;
7368                
7369                switch ( LA(1)) {
7370                case BNOT:
7371                {
7372                        AST tmp215_AST = null;
7373                        tmp215_AST = astFactory.create(LT(1));
7374                        astFactory.makeASTRoot(currentAST, tmp215_AST);
7375                        match(BNOT);
7376                        unaryExpression();
7377                        astFactory.addASTChild(currentAST, returnAST);
7378                        unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
7379                        break;
7380                }
7381                case LNOT:
7382                {
7383                        AST tmp216_AST = null;
7384                        tmp216_AST = astFactory.create(LT(1));
7385                        astFactory.makeASTRoot(currentAST, tmp216_AST);
7386                        match(LNOT);
7387                        unaryExpression();
7388                        astFactory.addASTChild(currentAST, returnAST);
7389                        unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
7390                        break;
7391                }
7392                case LITERAL_void:
7393                case LITERAL_boolean:
7394                case LITERAL_byte:
7395                case LITERAL_char:
7396                case LITERAL_short:
7397                case LITERAL_int:
7398                case LITERAL_float:
7399                case LITERAL_long:
7400                case LITERAL_double:
7401                case IDENT:
7402                case LPAREN:
7403                case LITERAL_this:
7404                case LITERAL_super:
7405                case LITERAL_true:
7406                case LITERAL_false:
7407                case LITERAL_null:
7408                case LITERAL_new:
7409                case NUM_INT:
7410                case CHAR_LITERAL:
7411                case STRING_LITERAL:
7412                case NUM_FLOAT:
7413                case NUM_LONG:
7414                case NUM_DOUBLE:
7415                case AT:
7416                {
7417                        {
7418                        boolean synPredMatched341 = false;
7419                        if (((LA(1)==LPAREN) && ((LA(2) >= LITERAL_void && LA(2) <= LITERAL_double)))) {
7420                                int _m341 = mark();
7421                                synPredMatched341 = true;
7422                                inputState.guessing++;
7423                                try {
7424                                        {
7425                                        match(LPAREN);
7426                                        builtInTypeSpec(true);
7427                                        match(RPAREN);
7428                                        unaryExpression();
7429                                        }
7430                                }
7431                                catch (RecognitionException pe) {
7432                                        synPredMatched341 = false;
7433                                }
7434                                rewind(_m341);
7435inputState.guessing--;
7436                        }
7437                        if ( synPredMatched341 ) {
7438                                lpb = LT(1);
7439                                lpb_AST = astFactory.create(lpb);
7440                                astFactory.makeASTRoot(currentAST, lpb_AST);
7441                                match(LPAREN);
7442                                if ( inputState.guessing==0 ) {
7443                                        lpb_AST.setType(TYPECAST);
7444                                }
7445                                builtInTypeSpec(true);
7446                                astFactory.addASTChild(currentAST, returnAST);
7447                                AST tmp217_AST = null;
7448                                tmp217_AST = astFactory.create(LT(1));
7449                                astFactory.addASTChild(currentAST, tmp217_AST);
7450                                match(RPAREN);
7451                                unaryExpression();
7452                                astFactory.addASTChild(currentAST, returnAST);
7453                        }
7454                        else {
7455                                boolean synPredMatched343 = false;
7456                                if (((LA(1)==LPAREN) && (LA(2)==IDENT||LA(2)==AT))) {
7457                                        int _m343 = mark();
7458                                        synPredMatched343 = true;
7459                                        inputState.guessing++;
7460                                        try {
7461                                                {
7462                                                match(LPAREN);
7463                                                typeCastParameters();
7464                                                match(RPAREN);
7465                                                unaryExpressionNotPlusMinus();
7466                                                }
7467                                        }
7468                                        catch (RecognitionException pe) {
7469                                                synPredMatched343 = false;
7470                                        }
7471                                        rewind(_m343);
7472inputState.guessing--;
7473                                }
7474                                if ( synPredMatched343 ) {
7475                                        lp = LT(1);
7476                                        lp_AST = astFactory.create(lp);
7477                                        astFactory.makeASTRoot(currentAST, lp_AST);
7478                                        match(LPAREN);
7479                                        if ( inputState.guessing==0 ) {
7480                                                lp_AST.setType(TYPECAST);
7481                                        }
7482                                        typeCastParameters();
7483                                        astFactory.addASTChild(currentAST, returnAST);
7484                                        AST tmp218_AST = null;
7485                                        tmp218_AST = astFactory.create(LT(1));
7486                                        astFactory.addASTChild(currentAST, tmp218_AST);
7487                                        match(RPAREN);
7488                                        unaryExpressionNotPlusMinus();
7489                                        astFactory.addASTChild(currentAST, returnAST);
7490                                }
7491                                else {
7492                                        boolean synPredMatched345 = false;
7493                                        if (((LA(1)==LPAREN) && (LA(2)==IDENT||LA(2)==AT))) {
7494                                                int _m345 = mark();
7495                                                synPredMatched345 = true;
7496                                                inputState.guessing++;
7497                                                try {
7498                                                        {
7499                                                        match(LPAREN);
7500                                                        typeCastParameters();
7501                                                        match(RPAREN);
7502                                                        lambdaExpression();
7503                                                        }
7504                                                }
7505                                                catch (RecognitionException pe) {
7506                                                        synPredMatched345 = false;
7507                                                }
7508                                                rewind(_m345);
7509inputState.guessing--;
7510                                        }
7511                                        if ( synPredMatched345 ) {
7512                                                lpl = LT(1);
7513                                                lpl_AST = astFactory.create(lpl);
7514                                                astFactory.makeASTRoot(currentAST, lpl_AST);
7515                                                match(LPAREN);
7516                                                if ( inputState.guessing==0 ) {
7517                                                        lpl_AST.setType(TYPECAST);
7518                                                }
7519                                                typeCastParameters();
7520                                                astFactory.addASTChild(currentAST, returnAST);
7521                                                AST tmp219_AST = null;
7522                                                tmp219_AST = astFactory.create(LT(1));
7523                                                astFactory.addASTChild(currentAST, tmp219_AST);
7524                                                match(RPAREN);
7525                                                lambdaExpression();
7526                                                astFactory.addASTChild(currentAST, returnAST);
7527                                        }
7528                                        else if ((_tokenSet_46.member(LA(1))) && (_tokenSet_19.member(LA(2)))) {
7529                                                postfixExpression();
7530                                                astFactory.addASTChild(currentAST, returnAST);
7531                                        }
7532                                        else {
7533                                                throw new NoViableAltException(LT(1), getFilename());
7534                                        }
7535                                        }}
7536                                        }
7537                                        unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
7538                                        break;
7539                                }
7540                                default:
7541                                {
7542                                        throw new NoViableAltException(LT(1), getFilename());
7543                                }
7544                                }
7545                                returnAST = unaryExpressionNotPlusMinus_AST;
7546                        }
7547                        
7548        public final void typeCastParameters() throws RecognitionException, TokenStreamException {
7549                
7550                returnAST = null;
7551                ASTPair currentAST = new ASTPair();
7552                AST typeCastParameters_AST = null;
7553                Token  b = null;
7554                AST b_AST = null;
7555                
7556                classTypeSpec(true);
7557                astFactory.addASTChild(currentAST, returnAST);
7558                {
7559                _loop348:
7560                do {
7561                        if ((LA(1)==BAND)) {
7562                                b = LT(1);
7563                                b_AST = astFactory.create(b);
7564                                astFactory.addASTChild(currentAST, b_AST);
7565                                match(BAND);
7566                                if ( inputState.guessing==0 ) {
7567                                        b_AST.setType(TYPE_EXTENSION_AND);
7568                                }
7569                                classTypeSpec(true);
7570                                astFactory.addASTChild(currentAST, returnAST);
7571                        }
7572                        else {
7573                                break _loop348;
7574                        }
7575                        
7576                } while (true);
7577                }
7578                typeCastParameters_AST = (AST)currentAST.root;
7579                returnAST = typeCastParameters_AST;
7580        }
7581        
7582        public final void postfixExpression() throws RecognitionException, TokenStreamException {
7583                
7584                returnAST = null;
7585                ASTPair currentAST = new ASTPair();
7586                AST postfixExpression_AST = null;
7587                Token  dc = null;
7588                AST dc_AST = null;
7589                Token  lbc = null;
7590                AST lbc_AST = null;
7591                Token  lb = null;
7592                AST lb_AST = null;
7593                Token  lp = null;
7594                AST lp_AST = null;
7595                Token  in = null;
7596                AST in_AST = null;
7597                Token  de = null;
7598                AST de_AST = null;
7599                
7600                primaryExpression();
7601                astFactory.addASTChild(currentAST, returnAST);
7602                {
7603                _loop360:
7604                do {
7605                        switch ( LA(1)) {
7606                        case DOT:
7607                        {
7608                                AST tmp220_AST = null;
7609                                tmp220_AST = astFactory.create(LT(1));
7610                                astFactory.makeASTRoot(currentAST, tmp220_AST);
7611                                match(DOT);
7612                                {
7613                                switch ( LA(1)) {
7614                                case IDENT:
7615                                case LITERAL_this:
7616                                case LITERAL_super:
7617                                case LT:
7618                                {
7619                                        {
7620                                        switch ( LA(1)) {
7621                                        case LT:
7622                                        {
7623                                                typeArguments(false);
7624                                                astFactory.addASTChild(currentAST, returnAST);
7625                                                break;
7626                                        }
7627                                        case IDENT:
7628                                        case LITERAL_this:
7629                                        case LITERAL_super:
7630                                        {
7631                                                break;
7632                                        }
7633                                        default:
7634                                        {
7635                                                throw new NoViableAltException(LT(1), getFilename());
7636                                        }
7637                                        }
7638                                        }
7639                                        {
7640                                        switch ( LA(1)) {
7641                                        case IDENT:
7642                                        {
7643                                                AST tmp221_AST = null;
7644                                                tmp221_AST = astFactory.create(LT(1));
7645                                                astFactory.addASTChild(currentAST, tmp221_AST);
7646                                                match(IDENT);
7647                                                break;
7648                                        }
7649                                        case LITERAL_this:
7650                                        {
7651                                                AST tmp222_AST = null;
7652                                                tmp222_AST = astFactory.create(LT(1));
7653                                                astFactory.addASTChild(currentAST, tmp222_AST);
7654                                                match(LITERAL_this);
7655                                                break;
7656                                        }
7657                                        case LITERAL_super:
7658                                        {
7659                                                AST tmp223_AST = null;
7660                                                tmp223_AST = astFactory.create(LT(1));
7661                                                astFactory.addASTChild(currentAST, tmp223_AST);
7662                                                match(LITERAL_super);
7663                                                break;
7664                                        }
7665                                        default:
7666                                        {
7667                                                throw new NoViableAltException(LT(1), getFilename());
7668                                        }
7669                                        }
7670                                        }
7671                                        break;
7672                                }
7673                                case LITERAL_class:
7674                                {
7675                                        AST tmp224_AST = null;
7676                                        tmp224_AST = astFactory.create(LT(1));
7677                                        astFactory.addASTChild(currentAST, tmp224_AST);
7678                                        match(LITERAL_class);
7679                                        break;
7680                                }
7681                                case LITERAL_new:
7682                                {
7683                                        newExpression();
7684                                        astFactory.addASTChild(currentAST, returnAST);
7685                                        break;
7686                                }
7687                                default:
7688                                {
7689                                        throw new NoViableAltException(LT(1), getFilename());
7690                                }
7691                                }
7692                                }
7693                                break;
7694                        }
7695                        case DOUBLE_COLON:
7696                        {
7697                                dc = LT(1);
7698                                dc_AST = astFactory.create(dc);
7699                                astFactory.makeASTRoot(currentAST, dc_AST);
7700                                match(DOUBLE_COLON);
7701                                if ( inputState.guessing==0 ) {
7702                                        dc_AST.setType(METHOD_REF);
7703                                }
7704                                {
7705                                {
7706                                switch ( LA(1)) {
7707                                case LT:
7708                                {
7709                                        typeArguments(false);
7710                                        astFactory.addASTChild(currentAST, returnAST);
7711                                        break;
7712                                }
7713                                case IDENT:
7714                                case LITERAL_new:
7715                                {
7716                                        break;
7717                                }
7718                                default:
7719                                {
7720                                        throw new NoViableAltException(LT(1), getFilename());
7721                                }
7722                                }
7723                                }
7724                                {
7725                                switch ( LA(1)) {
7726                                case IDENT:
7727                                {
7728                                        AST tmp225_AST = null;
7729                                        tmp225_AST = astFactory.create(LT(1));
7730                                        astFactory.addASTChild(currentAST, tmp225_AST);
7731                                        match(IDENT);
7732                                        break;
7733                                }
7734                                case LITERAL_new:
7735                                {
7736                                        AST tmp226_AST = null;
7737                                        tmp226_AST = astFactory.create(LT(1));
7738                                        astFactory.addASTChild(currentAST, tmp226_AST);
7739                                        match(LITERAL_new);
7740                                        break;
7741                                }
7742                                default:
7743                                {
7744                                        throw new NoViableAltException(LT(1), getFilename());
7745                                }
7746                                }
7747                                }
7748                                }
7749                                break;
7750                        }
7751                        default:
7752                                if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
7753                                        {
7754                                        int _cnt358=0;
7755                                        _loop358:
7756                                        do {
7757                                                if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
7758                                                        lbc = LT(1);
7759                                                        lbc_AST = astFactory.create(lbc);
7760                                                        astFactory.makeASTRoot(currentAST, lbc_AST);
7761                                                        match(LBRACK);
7762                                                        if ( inputState.guessing==0 ) {
7763                                                                lbc_AST.setType(ARRAY_DECLARATOR);
7764                                                        }
7765                                                        AST tmp227_AST = null;
7766                                                        tmp227_AST = astFactory.create(LT(1));
7767                                                        astFactory.addASTChild(currentAST, tmp227_AST);
7768                                                        match(RBRACK);
7769                                                }
7770                                                else {
7771                                                        if ( _cnt358>=1 ) { break _loop358; } else {throw new NoViableAltException(LT(1), getFilename());}
7772                                                }
7773                                                
7774                                                _cnt358++;
7775                                        } while (true);
7776                                        }
7777                                        {
7778                                        if ((LA(1)==DOT) && (LA(2)==LITERAL_class)) {
7779                                                AST tmp228_AST = null;
7780                                                tmp228_AST = astFactory.create(LT(1));
7781                                                astFactory.makeASTRoot(currentAST, tmp228_AST);
7782                                                match(DOT);
7783                                                AST tmp229_AST = null;
7784                                                tmp229_AST = astFactory.create(LT(1));
7785                                                astFactory.addASTChild(currentAST, tmp229_AST);
7786                                                match(LITERAL_class);
7787                                        }
7788                                        else if ((_tokenSet_19.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7789                                        }
7790                                        else {
7791                                                throw new NoViableAltException(LT(1), getFilename());
7792                                        }
7793                                        
7794                                        }
7795                                }
7796                                else if ((LA(1)==LBRACK) && (_tokenSet_14.member(LA(2)))) {
7797                                        lb = LT(1);
7798                                        lb_AST = astFactory.create(lb);
7799                                        astFactory.makeASTRoot(currentAST, lb_AST);
7800                                        match(LBRACK);
7801                                        if ( inputState.guessing==0 ) {
7802                                                lb_AST.setType(INDEX_OP);
7803                                        }
7804                                        expression();
7805                                        astFactory.addASTChild(currentAST, returnAST);
7806                                        AST tmp230_AST = null;
7807                                        tmp230_AST = astFactory.create(LT(1));
7808                                        astFactory.addASTChild(currentAST, tmp230_AST);
7809                                        match(RBRACK);
7810                                }
7811                                else if ((LA(1)==LPAREN) && (_tokenSet_70.member(LA(2)))) {
7812                                        lp = LT(1);
7813                                        lp_AST = astFactory.create(lp);
7814                                        astFactory.makeASTRoot(currentAST, lp_AST);
7815                                        match(LPAREN);
7816                                        if ( inputState.guessing==0 ) {
7817                                                lp_AST.setType(METHOD_CALL);
7818                                        }
7819                                        argList();
7820                                        astFactory.addASTChild(currentAST, returnAST);
7821                                        AST tmp231_AST = null;
7822                                        tmp231_AST = astFactory.create(LT(1));
7823                                        astFactory.addASTChild(currentAST, tmp231_AST);
7824                                        match(RPAREN);
7825                                }
7826                        else {
7827                                break _loop360;
7828                        }
7829                        }
7830                } while (true);
7831                }
7832                {
7833                if ((LA(1)==INC) && (_tokenSet_68.member(LA(2)))) {
7834                        in = LT(1);
7835                        in_AST = astFactory.create(in);
7836                        astFactory.makeASTRoot(currentAST, in_AST);
7837                        match(INC);
7838                        if ( inputState.guessing==0 ) {
7839                                in_AST.setType(POST_INC);
7840                        }
7841                }
7842                else if ((LA(1)==DEC) && (_tokenSet_68.member(LA(2)))) {
7843                        de = LT(1);
7844                        de_AST = astFactory.create(de);
7845                        astFactory.makeASTRoot(currentAST, de_AST);
7846                        match(DEC);
7847                        if ( inputState.guessing==0 ) {
7848                                de_AST.setType(POST_DEC);
7849                        }
7850                }
7851                else if ((_tokenSet_68.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7852                }
7853                else {
7854                        throw new NoViableAltException(LT(1), getFilename());
7855                }
7856                
7857                }
7858                postfixExpression_AST = (AST)currentAST.root;
7859                returnAST = postfixExpression_AST;
7860        }
7861        
7862/** object instantiation.
7863 *  Trees are built as illustrated by the following input/tree pairs:
7864 *
7865 *  new T()
7866 *
7867 *  new
7868 *   |
7869 *   T --  ELIST
7870 *           |
7871 *          arg1 -- arg2 -- .. -- argn
7872 *
7873 *  new int[]
7874 *
7875 *  new
7876 *   |
7877 *  int -- ARRAY_DECLARATOR
7878 *
7879 *  new int[] {1,2}
7880 *
7881 *  new
7882 *   |
7883 *  int -- ARRAY_DECLARATOR -- ARRAY_INIT
7884 *                                  |
7885 *                                EXPR -- EXPR
7886 *                                  |      |
7887 *                                  1      2
7888 *
7889 *  new int[3]
7890 *  new
7891 *   |
7892 *  int -- ARRAY_DECLARATOR
7893 *                |
7894 *              EXPR
7895 *                |
7896 *                3
7897 *
7898 *  new int[1][2]
7899 *
7900 *  new
7901 *   |
7902 *  int -- ARRAY_DECLARATOR
7903 *               |
7904 *         ARRAY_DECLARATOR -- EXPR
7905 *               |              |
7906 *             EXPR             1
7907 *               |
7908 *               2
7909 *
7910 *
7911 * @throws RecognitionException if recognition problem occurs.
7912 * @throws TokenStreamException if problem occurs while generating a stream of tokens.
7913 */
7914        public final void newExpression() throws RecognitionException, TokenStreamException {
7915                
7916                returnAST = null;
7917                ASTPair currentAST = new ASTPair();
7918                AST newExpression_AST = null;
7919                
7920                AST tmp232_AST = null;
7921                tmp232_AST = astFactory.create(LT(1));
7922                astFactory.makeASTRoot(currentAST, tmp232_AST);
7923                match(LITERAL_new);
7924                {
7925                switch ( LA(1)) {
7926                case LT:
7927                {
7928                        typeArguments(false);
7929                        astFactory.addASTChild(currentAST, returnAST);
7930                        break;
7931                }
7932                case LITERAL_void:
7933                case LITERAL_boolean:
7934                case LITERAL_byte:
7935                case LITERAL_char:
7936                case LITERAL_short:
7937                case LITERAL_int:
7938                case LITERAL_float:
7939                case LITERAL_long:
7940                case LITERAL_double:
7941                case IDENT:
7942                case AT:
7943                {
7944                        break;
7945                }
7946                default:
7947                {
7948                        throw new NoViableAltException(LT(1), getFilename());
7949                }
7950                }
7951                }
7952                type();
7953                astFactory.addASTChild(currentAST, returnAST);
7954                {
7955                switch ( LA(1)) {
7956                case LPAREN:
7957                {
7958                        AST tmp233_AST = null;
7959                        tmp233_AST = astFactory.create(LT(1));
7960                        astFactory.addASTChild(currentAST, tmp233_AST);
7961                        match(LPAREN);
7962                        argList();
7963                        astFactory.addASTChild(currentAST, returnAST);
7964                        AST tmp234_AST = null;
7965                        tmp234_AST = astFactory.create(LT(1));
7966                        astFactory.addASTChild(currentAST, tmp234_AST);
7967                        match(RPAREN);
7968                        {
7969                        if ((LA(1)==LCURLY) && (_tokenSet_31.member(LA(2)))) {
7970                                classBlock();
7971                                astFactory.addASTChild(currentAST, returnAST);
7972                        }
7973                        else if ((_tokenSet_19.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7974                        }
7975                        else {
7976                                throw new NoViableAltException(LT(1), getFilename());
7977                        }
7978                        
7979                        }
7980                        break;
7981                }
7982                case LBRACK:
7983                case AT:
7984                {
7985                        newArrayDeclarator();
7986                        astFactory.addASTChild(currentAST, returnAST);
7987                        {
7988                        if ((LA(1)==LCURLY) && (_tokenSet_71.member(LA(2)))) {
7989                                arrayInitializer();
7990                                astFactory.addASTChild(currentAST, returnAST);
7991                        }
7992                        else if ((_tokenSet_19.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7993                        }
7994                        else {
7995                                throw new NoViableAltException(LT(1), getFilename());
7996                        }
7997                        
7998                        }
7999                        break;
8000                }
8001                default:
8002                {
8003                        throw new NoViableAltException(LT(1), getFilename());
8004                }
8005                }
8006                }
8007                newExpression_AST = (AST)currentAST.root;
8008                returnAST = newExpression_AST;
8009        }
8010        
8011        public final void constant() throws RecognitionException, TokenStreamException {
8012                
8013                returnAST = null;
8014                ASTPair currentAST = new ASTPair();
8015                AST constant_AST = null;
8016                
8017                switch ( LA(1)) {
8018                case NUM_INT:
8019                {
8020                        AST tmp235_AST = null;
8021                        tmp235_AST = astFactory.create(LT(1));
8022                        astFactory.addASTChild(currentAST, tmp235_AST);
8023                        match(NUM_INT);
8024                        constant_AST = (AST)currentAST.root;
8025                        break;
8026                }
8027                case NUM_LONG:
8028                {
8029                        AST tmp236_AST = null;
8030                        tmp236_AST = astFactory.create(LT(1));
8031                        astFactory.addASTChild(currentAST, tmp236_AST);
8032                        match(NUM_LONG);
8033                        constant_AST = (AST)currentAST.root;
8034                        break;
8035                }
8036                case NUM_FLOAT:
8037                {
8038                        AST tmp237_AST = null;
8039                        tmp237_AST = astFactory.create(LT(1));
8040                        astFactory.addASTChild(currentAST, tmp237_AST);
8041                        match(NUM_FLOAT);
8042                        constant_AST = (AST)currentAST.root;
8043                        break;
8044                }
8045                case NUM_DOUBLE:
8046                {
8047                        AST tmp238_AST = null;
8048                        tmp238_AST = astFactory.create(LT(1));
8049                        astFactory.addASTChild(currentAST, tmp238_AST);
8050                        match(NUM_DOUBLE);
8051                        constant_AST = (AST)currentAST.root;
8052                        break;
8053                }
8054                case CHAR_LITERAL:
8055                {
8056                        AST tmp239_AST = null;
8057                        tmp239_AST = astFactory.create(LT(1));
8058                        astFactory.addASTChild(currentAST, tmp239_AST);
8059                        match(CHAR_LITERAL);
8060                        constant_AST = (AST)currentAST.root;
8061                        break;
8062                }
8063                case STRING_LITERAL:
8064                {
8065                        AST tmp240_AST = null;
8066                        tmp240_AST = astFactory.create(LT(1));
8067                        astFactory.addASTChild(currentAST, tmp240_AST);
8068                        match(STRING_LITERAL);
8069                        constant_AST = (AST)currentAST.root;
8070                        break;
8071                }
8072                default:
8073                {
8074                        throw new NoViableAltException(LT(1), getFilename());
8075                }
8076                }
8077                returnAST = constant_AST;
8078        }
8079        
8080        public final void newArrayDeclarator() throws RecognitionException, TokenStreamException {
8081                
8082                returnAST = null;
8083                ASTPair currentAST = new ASTPair();
8084                AST newArrayDeclarator_AST = null;
8085                Token  lb = null;
8086                AST lb_AST = null;
8087                
8088                {
8089                int _cnt382=0;
8090                _loop382:
8091                do {
8092                        if ((LA(1)==LBRACK||LA(1)==AT) && (_tokenSet_72.member(LA(2)))) {
8093                                {
8094                                if (((LA(1)==LBRACK||LA(1)==AT) && (_tokenSet_72.member(LA(2))))&&(LA(1) == AT)) {
8095                                        annotations();
8096                                        astFactory.addASTChild(currentAST, returnAST);
8097                                }
8098                                else if ((LA(1)==LBRACK) && (_tokenSet_72.member(LA(2)))) {
8099                                }
8100                                else {
8101                                        throw new NoViableAltException(LT(1), getFilename());
8102                                }
8103                                
8104                                }
8105                                lb = LT(1);
8106                                lb_AST = astFactory.create(lb);
8107                                astFactory.makeASTRoot(currentAST, lb_AST);
8108                                match(LBRACK);
8109                                if ( inputState.guessing==0 ) {
8110                                        lb_AST.setType(ARRAY_DECLARATOR);
8111                                }
8112                                {
8113                                switch ( LA(1)) {
8114                                case LITERAL_void:
8115                                case LITERAL_boolean:
8116                                case LITERAL_byte:
8117                                case LITERAL_char:
8118                                case LITERAL_short:
8119                                case LITERAL_int:
8120                                case LITERAL_float:
8121                                case LITERAL_long:
8122                                case LITERAL_double:
8123                                case IDENT:
8124                                case LPAREN:
8125                                case LITERAL_this:
8126                                case LITERAL_super:
8127                                case PLUS:
8128                                case MINUS:
8129                                case INC:
8130                                case DEC:
8131                                case BNOT:
8132                                case LNOT:
8133                                case LITERAL_true:
8134                                case LITERAL_false:
8135                                case LITERAL_null:
8136                                case LITERAL_new:
8137                                case NUM_INT:
8138                                case CHAR_LITERAL:
8139                                case STRING_LITERAL:
8140                                case NUM_FLOAT:
8141                                case NUM_LONG:
8142                                case NUM_DOUBLE:
8143                                case AT:
8144                                {
8145                                        expression();
8146                                        astFactory.addASTChild(currentAST, returnAST);
8147                                        break;
8148                                }
8149                                case RBRACK:
8150                                {
8151                                        break;
8152                                }
8153                                default:
8154                                {
8155                                        throw new NoViableAltException(LT(1), getFilename());
8156                                }
8157                                }
8158                                }
8159                                AST tmp241_AST = null;
8160                                tmp241_AST = astFactory.create(LT(1));
8161                                astFactory.addASTChild(currentAST, tmp241_AST);
8162                                match(RBRACK);
8163                        }
8164                        else {
8165                                if ( _cnt382>=1 ) { break _loop382; } else {throw new NoViableAltException(LT(1), getFilename());}
8166                        }
8167                        
8168                        _cnt382++;
8169                } while (true);
8170                }
8171                newArrayDeclarator_AST = (AST)currentAST.root;
8172                returnAST = newArrayDeclarator_AST;
8173        }
8174        
8175        public final void lambdaParameters() throws RecognitionException, TokenStreamException {
8176                
8177                returnAST = null;
8178                ASTPair currentAST = new ASTPair();
8179                AST lambdaParameters_AST = null;
8180                
8181                switch ( LA(1)) {
8182                case IDENT:
8183                {
8184                        AST tmp242_AST = null;
8185                        tmp242_AST = astFactory.create(LT(1));
8186                        astFactory.addASTChild(currentAST, tmp242_AST);
8187                        match(IDENT);
8188                        lambdaParameters_AST = (AST)currentAST.root;
8189                        break;
8190                }
8191                case LPAREN:
8192                {
8193                        AST tmp243_AST = null;
8194                        tmp243_AST = astFactory.create(LT(1));
8195                        astFactory.addASTChild(currentAST, tmp243_AST);
8196                        match(LPAREN);
8197                        {
8198                        if ((_tokenSet_73.member(LA(1))) && (_tokenSet_74.member(LA(2)))) {
8199                                parameterDeclarationList();
8200                                astFactory.addASTChild(currentAST, returnAST);
8201                        }
8202                        else if ((LA(1)==RPAREN) && (LA(2)==LAMBDA)) {
8203                        }
8204                        else {
8205                                throw new NoViableAltException(LT(1), getFilename());
8206                        }
8207                        
8208                        }
8209                        AST tmp244_AST = null;
8210                        tmp244_AST = astFactory.create(LT(1));
8211                        astFactory.addASTChild(currentAST, tmp244_AST);
8212                        match(RPAREN);
8213                        lambdaParameters_AST = (AST)currentAST.root;
8214                        break;
8215                }
8216                default:
8217                {
8218                        throw new NoViableAltException(LT(1), getFilename());
8219                }
8220                }
8221                returnAST = lambdaParameters_AST;
8222        }
8223        
8224        public final void lambdaBody() throws RecognitionException, TokenStreamException {
8225                
8226                returnAST = null;
8227                ASTPair currentAST = new ASTPair();
8228                AST lambdaBody_AST = null;
8229                
8230                {
8231                if ((_tokenSet_14.member(LA(1))) && (_tokenSet_75.member(LA(2)))) {
8232                        expression();
8233                        astFactory.addASTChild(currentAST, returnAST);
8234                }
8235                else if ((_tokenSet_39.member(LA(1))) && (_tokenSet_75.member(LA(2)))) {
8236                        statement();
8237                        astFactory.addASTChild(currentAST, returnAST);
8238                }
8239                else {
8240                        throw new NoViableAltException(LT(1), getFilename());
8241                }
8242                
8243                }
8244                lambdaBody_AST = (AST)currentAST.root;
8245                returnAST = lambdaBody_AST;
8246        }
8247        
8248        
8249        public static final String[] _tokenNames = {
8250                "<0>",
8251                "EOF",
8252                "<2>",
8253                "NULL_TREE_LOOKAHEAD",
8254                "BLOCK",
8255                "MODIFIERS",
8256                "OBJBLOCK",
8257                "SLIST",
8258                "CTOR_DEF",
8259                "METHOD_DEF",
8260                "VARIABLE_DEF",
8261                "INSTANCE_INIT",
8262                "STATIC_INIT",
8263                "TYPE",
8264                "CLASS_DEF",
8265                "INTERFACE_DEF",
8266                "PACKAGE_DEF",
8267                "ARRAY_DECLARATOR",
8268                "EXTENDS_CLAUSE",
8269                "IMPLEMENTS_CLAUSE",
8270                "PARAMETERS",
8271                "PARAMETER_DEF",
8272                "LABELED_STAT",
8273                "TYPECAST",
8274                "INDEX_OP",
8275                "POST_INC",
8276                "POST_DEC",
8277                "METHOD_CALL",
8278                "EXPR",
8279                "ARRAY_INIT",
8280                "IMPORT",
8281                "UNARY_MINUS",
8282                "UNARY_PLUS",
8283                "CASE_GROUP",
8284                "ELIST",
8285                "FOR_INIT",
8286                "FOR_CONDITION",
8287                "FOR_ITERATOR",
8288                "EMPTY_STAT",
8289                "\"final\"",
8290                "\"abstract\"",
8291                "\"strictfp\"",
8292                "SUPER_CTOR_CALL",
8293                "CTOR_CALL",
8294                "\"package\"",
8295                "SEMI",
8296                "\"import\"",
8297                "LBRACK",
8298                "RBRACK",
8299                "\"void\"",
8300                "\"boolean\"",
8301                "\"byte\"",
8302                "\"char\"",
8303                "\"short\"",
8304                "\"int\"",
8305                "\"float\"",
8306                "\"long\"",
8307                "\"double\"",
8308                "IDENT",
8309                "DOT",
8310                "STAR",
8311                "\"private\"",
8312                "\"public\"",
8313                "\"protected\"",
8314                "\"static\"",
8315                "\"transient\"",
8316                "\"native\"",
8317                "\"synchronized\"",
8318                "\"volatile\"",
8319                "\"class\"",
8320                "\"extends\"",
8321                "\"interface\"",
8322                "LCURLY",
8323                "RCURLY",
8324                "COMMA",
8325                "\"implements\"",
8326                "LPAREN",
8327                "RPAREN",
8328                "\"this\"",
8329                "\"super\"",
8330                "ASSIGN",
8331                "\"throws\"",
8332                "COLON",
8333                "\"if\"",
8334                "\"while\"",
8335                "\"do\"",
8336                "\"break\"",
8337                "\"continue\"",
8338                "\"return\"",
8339                "\"switch\"",
8340                "\"throw\"",
8341                "\"for\"",
8342                "\"else\"",
8343                "\"case\"",
8344                "\"default\"",
8345                "\"try\"",
8346                "\"catch\"",
8347                "\"finally\"",
8348                "PLUS_ASSIGN",
8349                "MINUS_ASSIGN",
8350                "STAR_ASSIGN",
8351                "DIV_ASSIGN",
8352                "MOD_ASSIGN",
8353                "SR_ASSIGN",
8354                "BSR_ASSIGN",
8355                "SL_ASSIGN",
8356                "BAND_ASSIGN",
8357                "BXOR_ASSIGN",
8358                "BOR_ASSIGN",
8359                "QUESTION",
8360                "LOR",
8361                "LAND",
8362                "BOR",
8363                "BXOR",
8364                "BAND",
8365                "NOT_EQUAL",
8366                "EQUAL",
8367                "LT",
8368                "GT",
8369                "LE",
8370                "GE",
8371                "\"instanceof\"",
8372                "SL",
8373                "SR",
8374                "BSR",
8375                "PLUS",
8376                "MINUS",
8377                "DIV",
8378                "MOD",
8379                "INC",
8380                "DEC",
8381                "BNOT",
8382                "LNOT",
8383                "\"true\"",
8384                "\"false\"",
8385                "\"null\"",
8386                "\"new\"",
8387                "NUM_INT",
8388                "CHAR_LITERAL",
8389                "STRING_LITERAL",
8390                "NUM_FLOAT",
8391                "NUM_LONG",
8392                "NUM_DOUBLE",
8393                "WS",
8394                "SINGLE_LINE_COMMENT",
8395                "BLOCK_COMMENT_BEGIN",
8396                "ESC",
8397                "HEX_DIGIT",
8398                "VOCAB",
8399                "EXPONENT",
8400                "FLOAT_SUFFIX",
8401                "ASSERT",
8402                "STATIC_IMPORT",
8403                "ENUM",
8404                "ENUM_DEF",
8405                "ENUM_CONSTANT_DEF",
8406                "FOR_EACH_CLAUSE",
8407                "ANNOTATION_DEF",
8408                "ANNOTATIONS",
8409                "ANNOTATION",
8410                "ANNOTATION_MEMBER_VALUE_PAIR",
8411                "ANNOTATION_FIELD_DEF",
8412                "ANNOTATION_ARRAY_INIT",
8413                "TYPE_ARGUMENTS",
8414                "TYPE_ARGUMENT",
8415                "TYPE_PARAMETERS",
8416                "TYPE_PARAMETER",
8417                "WILDCARD_TYPE",
8418                "TYPE_UPPER_BOUNDS",
8419                "TYPE_LOWER_BOUNDS",
8420                "AT",
8421                "ELLIPSIS",
8422                "GENERIC_START",
8423                "GENERIC_END",
8424                "TYPE_EXTENSION_AND",
8425                "DO_WHILE",
8426                "RESOURCE_SPECIFICATION",
8427                "RESOURCES",
8428                "RESOURCE",
8429                "DOUBLE_COLON",
8430                "METHOD_REF",
8431                "LAMBDA",
8432                "BLOCK_COMMENT_END",
8433                "COMMENT_CONTENT",
8434                "SINGLE_LINE_COMMENT_CONTENT",
8435                "BLOCK_COMMENT_CONTENT",
8436                "STD_ESC",
8437                "BINARY_DIGIT",
8438                "ID_START",
8439                "ID_PART",
8440                "INT_LITERAL",
8441                "LONG_LITERAL",
8442                "FLOAT_LITERAL",
8443                "DOUBLE_LITERAL",
8444                "HEX_FLOAT_LITERAL",
8445                "HEX_DOUBLE_LITERAL",
8446                "SIGNED_INTEGER",
8447                "BINARY_EXPONENT"
8448        };
8449        
8450        protected void buildTokenTypeASTClassMap() {
8451                tokenTypeToASTClassMap=null;
8452        };
8453        
8454        private static final long[] mk_tokenSet_0() {
8455                long[] data = { -2305733607806730238L, 1073742015L, 4398080065536L, 0L, 0L, 0L};
8456                return data;
8457        }
8458        public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
8459        private static final long[] mk_tokenSet_1() {
8460                long[] data = { -2017503231655018494L, 1073742015L, 4398080065536L, 0L, 0L, 0L};
8461                return data;
8462        }
8463        public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
8464        private static final long[] mk_tokenSet_2() {
8465                long[] data = { -2305803976550907904L, 1073742015L, 4398080065536L, 0L, 0L, 0L};
8466                return data;
8467        }
8468        public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
8469        private static final long[] mk_tokenSet_3() {
8470                long[] data = { -2305803976550907902L, 1073742015L, 4398080065536L, 0L, 0L, 0L};
8471                return data;
8472        }
8473        public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());
8474        private static final long[] mk_tokenSet_4() {
8475                long[] data = { -2305839160922996736L, 1073741855L, 0L, 0L};
8476                return data;
8477        }
8478        public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4());
8479        private static final long[] mk_tokenSet_5() {
8480                long[] data = { 140737488355328L, 0L, 13194139533312L, 0L, 0L, 0L};
8481                return data;
8482        }
8483        public static final BitSet _tokenSet_5 = new BitSet(mk_tokenSet_5());
8484        private static final long[] mk_tokenSet_6() {
8485                long[] data = { -101704825569280L, -12885032961L, 2264993995194367L, 0L, 0L, 0L};
8486                return data;
8487        }
8488        public static final BitSet _tokenSet_6 = new BitSet(mk_tokenSet_6());
8489        private static final long[] mk_tokenSet_7() {
8490                long[] data = { -84112639524862L, -131073L, 11272193249935359L, 0L, 0L, 0L};
8491                return data;
8492        }
8493        public static final BitSet _tokenSet_7 = new BitSet(mk_tokenSet_7());
8494        private static final long[] mk_tokenSet_8() {
8495                long[] data = { 575897802350002176L, 35184372088832L, 4398046511104L, 0L, 0L, 0L};
8496                return data;
8497        }
8498        public static final BitSet _tokenSet_8 = new BitSet(mk_tokenSet_8());
8499        private static final long[] mk_tokenSet_9() {
8500                long[] data = { 0L, 1747396655419752448L, 0L, 0L};
8501                return data;
8502        }
8503        public static final BitSet _tokenSet_9 = new BitSet(mk_tokenSet_9());
8504        private static final long[] mk_tokenSet_10() {
8505                long[] data = { 575897802350002176L, 0L, 4398046511104L, 0L, 0L, 0L};
8506                return data;
8507        }
8508        public static final BitSet _tokenSet_10 = new BitSet(mk_tokenSet_10());
8509        private static final long[] mk_tokenSet_11() {
8510                long[] data = { 864831865943490560L, 9007199254745088L, 4398046511104L, 0L, 0L, 0L};
8511                return data;
8512        }
8513        public static final BitSet _tokenSet_11 = new BitSet(mk_tokenSet_11());
8514        private static final long[] mk_tokenSet_12() {
8515                long[] data = { 575897802350002176L, 6917529027641135360L, 4398046543870L, 0L, 0L, 0L};
8516                return data;
8517        }
8518        public static final BitSet _tokenSet_12 = new BitSet(mk_tokenSet_12());
8519        private static final long[] mk_tokenSet_13() {
8520                long[] data = { 2305420796748627968L, -35184372026880L, 2256197860229119L, 0L, 0L, 0L};
8521                return data;
8522        }
8523        public static final BitSet _tokenSet_13 = new BitSet(mk_tokenSet_13());
8524        private static final long[] mk_tokenSet_14() {
8525                long[] data = { 575897802350002176L, 6917529027641135104L, 4398046543870L, 0L, 0L, 0L};
8526                return data;
8527        }
8528        public static final BitSet _tokenSet_14 = new BitSet(mk_tokenSet_14());
8529        private static final long[] mk_tokenSet_15() {
8530                long[] data = { 2305455981120716800L, -35184372026368L, 2256197860229119L, 0L, 0L, 0L};
8531                return data;
8532        }
8533        public static final BitSet _tokenSet_15 = new BitSet(mk_tokenSet_15());
8534        private static final long[] mk_tokenSet_16() {
8535                long[] data = { 2305420796748627968L, -35184372034048L, 2256197860229119L, 0L, 0L, 0L};
8536                return data;
8537        }
8538        public static final BitSet _tokenSet_16 = new BitSet(mk_tokenSet_16());
8539        private static final long[] mk_tokenSet_17() {
8540                long[] data = { 575898352105816064L, 24576L, 9011597301252096L, 0L, 0L, 0L};
8541                return data;
8542        }
8543        public static final BitSet _tokenSet_17 = new BitSet(mk_tokenSet_17());
8544        private static final long[] mk_tokenSet_18() {
8545                long[] data = { 2305420796748627968L, -17179488256L, 2256197860229119L, 0L, 0L, 0L};
8546                return data;
8547        }
8548        public static final BitSet _tokenSet_18 = new BitSet(mk_tokenSet_18());
8549        private static final long[] mk_tokenSet_19() {
8550                long[] data = { -101704825569280L, -12885035073L, 2256197902172159L, 0L, 0L, 0L};
8551                return data;
8552        }
8553        public static final BitSet _tokenSet_19 = new BitSet(mk_tokenSet_19());
8554        private static final long[] mk_tokenSet_20() {
8555                long[] data = { 575897802350002176L, 1747396655419755840L, 4398046511104L, 0L, 0L, 0L};
8556                return data;
8557        }
8558        public static final BitSet _tokenSet_20 = new BitSet(mk_tokenSet_20());
8559        private static final long[] mk_tokenSet_21() {
8560                long[] data = { -1153304684409126912L, 9007200328489983L, 4398080065536L, 0L, 0L, 0L};
8561                return data;
8562        }
8563        public static final BitSet _tokenSet_21 = new BitSet(mk_tokenSet_21());
8564        private static final long[] mk_tokenSet_22() {
8565                long[] data = { 0L, 160L, 4398080065536L, 0L, 0L, 0L};
8566                return data;
8567        }
8568        public static final BitSet _tokenSet_22 = new BitSet(mk_tokenSet_22());
8569        private static final long[] mk_tokenSet_23() {
8570                long[] data = { 864831865943490560L, 9007199254740992L, 4398046511104L, 0L, 0L, 0L};
8571                return data;
8572        }
8573        public static final BitSet _tokenSet_23 = new BitSet(mk_tokenSet_23());
8574        private static final long[] mk_tokenSet_24() {
8575                long[] data = { 175921860444160L, 66560L, 4398046511104L, 0L, 0L, 0L};
8576                return data;
8577        }
8578        public static final BitSet _tokenSet_24 = new BitSet(mk_tokenSet_24());
8579        private static final long[] mk_tokenSet_25() {
8580                long[] data = { -1729906174200905728L, 9007200328951743L, 4398080065536L, 0L, 0L, 0L};
8581                return data;
8582        }
8583        public static final BitSet _tokenSet_25 = new BitSet(mk_tokenSet_25());
8584        private static final long[] mk_tokenSet_26() {
8585                long[] data = { -101704825569278L, -12884904001L, 11263397156913151L, 0L, 0L, 0L};
8586                return data;
8587        }
8588        public static final BitSet _tokenSet_26 = new BitSet(mk_tokenSet_26());
8589        private static final long[] mk_tokenSet_27() {
8590                long[] data = { -1729941358572994560L, 9007200328483007L, 4398080065536L, 0L, 0L, 0L};
8591                return data;
8592        }
8593        public static final BitSet _tokenSet_27 = new BitSet(mk_tokenSet_27());
8594        private static final long[] mk_tokenSet_28() {
8595                long[] data = { -1153339868781215744L, 9007200328487103L, 4398080065536L, 0L, 0L, 0L};
8596                return data;
8597        }
8598        public static final BitSet _tokenSet_28 = new BitSet(mk_tokenSet_28());
8599        private static final long[] mk_tokenSet_29() {
8600                long[] data = { 575897802350002176L, 9007199254740992L, 4398046511104L, 0L, 0L, 0L};
8601                return data;
8602        }
8603        public static final BitSet _tokenSet_29 = new BitSet(mk_tokenSet_29());
8604        private static final long[] mk_tokenSet_30() {
8605                long[] data = { -1729765436712550400L, 9007200328550335L, 4398080065536L, 0L, 0L, 0L};
8606                return data;
8607        }
8608        public static final BitSet _tokenSet_30 = new BitSet(mk_tokenSet_30());
8609        private static final long[] mk_tokenSet_31() {
8610                long[] data = { -1729906174200905728L, 9007200328483775L, 4398080065536L, 0L, 0L, 0L};
8611                return data;
8612        }
8613        public static final BitSet _tokenSet_31 = new BitSet(mk_tokenSet_31());
8614        private static final long[] mk_tokenSet_32() {
8615                long[] data = { -101704825569278L, -12885035073L, 2256197902172159L, 0L, 0L, 0L};
8616                return data;
8617        }
8618        public static final BitSet _tokenSet_32 = new BitSet(mk_tokenSet_32());
8619        private static final long[] mk_tokenSet_33() {
8620                long[] data = { 575898352105816064L, 16384L, 4398046511104L, 0L, 0L, 0L};
8621                return data;
8622        }
8623        public static final BitSet _tokenSet_33 = new BitSet(mk_tokenSet_33());
8624        private static final long[] mk_tokenSet_34() {
8625                long[] data = { 1152499292141780992L, 9007199254766592L, 4398046511104L, 0L, 0L, 0L};
8626                return data;
8627        }
8628        public static final BitSet _tokenSet_34 = new BitSet(mk_tokenSet_34());
8629        private static final long[] mk_tokenSet_35() {
8630                long[] data = { 575898352105816064L, 0L, 4398046511104L, 0L, 0L, 0L};
8631                return data;
8632        }
8633        public static final BitSet _tokenSet_35 = new BitSet(mk_tokenSet_35());
8634        private static final long[] mk_tokenSet_36() {
8635                long[] data = { 1152499292141780992L, 9007199254740992L, 13194139533312L, 0L, 0L, 0L};
8636                return data;
8637        }
8638        public static final BitSet _tokenSet_36 = new BitSet(mk_tokenSet_36());
8639        private static final long[] mk_tokenSet_37() {
8640                long[] data = { 864726312827224064L, 1280L, 0L, 0L};
8641                return data;
8642        }
8643        public static final BitSet _tokenSet_37 = new BitSet(mk_tokenSet_37());
8644        private static final long[] mk_tokenSet_38() {
8645                long[] data = { 576495936675512320L, 1280L, 0L, 0L};
8646                return data;
8647        }
8648        public static final BitSet _tokenSet_38 = new BitSet(mk_tokenSet_38());
8649        private static final long[] mk_tokenSet_39() {
8650                long[] data = { -1729906174200905728L, 6917529031130272063L, 4398054932478L, 0L, 0L, 0L};
8651                return data;
8652        }
8653        public static final BitSet _tokenSet_39 = new BitSet(mk_tokenSet_39());
8654        private static final long[] mk_tokenSet_40() {
8655                long[] data = { 575897802350002176L, 9007199254794240L, 4398046543840L, 0L, 0L, 0L};
8656                return data;
8657        }
8658        public static final BitSet _tokenSet_40 = new BitSet(mk_tokenSet_40());
8659        private static final long[] mk_tokenSet_41() {
8660                long[] data = { 1152499292141780992L, 8673968066687717376L, 4398046543870L, 0L, 0L, 0L};
8661                return data;
8662        }
8663        public static final BitSet _tokenSet_41 = new BitSet(mk_tokenSet_41());
8664        private static final long[] mk_tokenSet_42() {
8665                long[] data = { -1729906174200905728L, 6917529031130272575L, 4398054932478L, 0L, 0L, 0L};
8666                return data;
8667        }
8668        public static final BitSet _tokenSet_42 = new BitSet(mk_tokenSet_42());
8669        private static final long[] mk_tokenSet_43() {
8670                long[] data = { -383179802279936L, -13690342465L, 11263397156913151L, 0L, 0L, 0L};
8671                return data;
8672        }
8673        public static final BitSet _tokenSet_43 = new BitSet(mk_tokenSet_43());
8674        private static final long[] mk_tokenSet_44() {
8675                long[] data = { 0L, 9007199254790144L, 0L, 0L};
8676                return data;
8677        }
8678        public static final BitSet _tokenSet_44 = new BitSet(mk_tokenSet_44());
8679        private static final long[] mk_tokenSet_45() {
8680                long[] data = { 575897802350002176L, 1747431839791894528L, 4398046511104L, 0L, 0L, 0L};
8681                return data;
8682        }
8683        public static final BitSet _tokenSet_45 = new BitSet(mk_tokenSet_45());
8684        private static final long[] mk_tokenSet_46() {
8685                long[] data = { 575897802350002176L, 53248L, 4398046543840L, 0L, 0L, 0L};
8686                return data;
8687        }
8688        public static final BitSet _tokenSet_46 = new BitSet(mk_tokenSet_46());
8689        private static final long[] mk_tokenSet_47() {
8690                long[] data = { 1152499292141780992L, 6926536226895876096L, 4398046543870L, 0L, 0L, 0L};
8691                return data;
8692        }
8693        public static final BitSet _tokenSet_47 = new BitSet(mk_tokenSet_47());
8694        private static final long[] mk_tokenSet_48() {
8695                long[] data = { 2305420796748627968L, -17179742208L, 2256197860229119L, 0L, 0L, 0L};
8696                return data;
8697        }
8698        public static final BitSet _tokenSet_48 = new BitSet(mk_tokenSet_48());
8699        private static final long[] mk_tokenSet_49() {
8700                long[] data = { -84112639524862L, -133185L, 11272193249935359L, 0L, 0L, 0L};
8701                return data;
8702        }
8703        public static final BitSet _tokenSet_49 = new BitSet(mk_tokenSet_49());
8704        private static final long[] mk_tokenSet_50() {
8705                long[] data = { 864831865943490560L, 9007199254757376L, 4398046511104L, 0L, 0L, 0L};
8706                return data;
8707        }
8708        public static final BitSet _tokenSet_50 = new BitSet(mk_tokenSet_50());
8709        private static final long[] mk_tokenSet_51() {
8710                long[] data = { 576601489791778816L, 9216L, 4398046511104L, 0L, 0L, 0L};
8711                return data;
8712        }
8713        public static final BitSet _tokenSet_51 = new BitSet(mk_tokenSet_51());
8714        private static final long[] mk_tokenSet_52() {
8715                long[] data = { -576984669594058752L, -9007194959973569L, 4398054932479L, 0L, 0L, 0L};
8716                return data;
8717        }
8718        public static final BitSet _tokenSet_52 = new BitSet(mk_tokenSet_52());
8719        private static final long[] mk_tokenSet_53() {
8720                long[] data = { -101704825569280L, -133185L, 11263397156913151L, 0L, 0L, 0L};
8721                return data;
8722        }
8723        public static final BitSet _tokenSet_53 = new BitSet(mk_tokenSet_53());
8724        private static final long[] mk_tokenSet_54() {
8725                long[] data = { -1729941358572994560L, 1073741855L, 4398046511104L, 0L, 0L, 0L};
8726                return data;
8727        }
8728        public static final BitSet _tokenSet_54 = new BitSet(mk_tokenSet_54());
8729        private static final long[] mk_tokenSet_55() {
8730                long[] data = { -1153339868781215744L, 9007200328482847L, 4398046511104L, 0L, 0L, 0L};
8731                return data;
8732        }
8733        public static final BitSet _tokenSet_55 = new BitSet(mk_tokenSet_55());
8734        private static final long[] mk_tokenSet_56() {
8735                long[] data = { -383179802279936L, -12885036225L, 11263397123358719L, 0L, 0L, 0L};
8736                return data;
8737        }
8738        public static final BitSet _tokenSet_56 = new BitSet(mk_tokenSet_56());
8739        private static final long[] mk_tokenSet_57() {
8740                long[] data = { -2305839160922996736L, 1073741887L, 4398046511104L, 0L, 0L, 0L};
8741                return data;
8742        }
8743        public static final BitSet _tokenSet_57 = new BitSet(mk_tokenSet_57());
8744        private static final long[] mk_tokenSet_58() {
8745                long[] data = { -2017608784771284992L, 1073741887L, 4398046511104L, 0L, 0L, 0L};
8746                return data;
8747        }
8748        public static final BitSet _tokenSet_58 = new BitSet(mk_tokenSet_58());
8749        private static final long[] mk_tokenSet_59() {
8750                long[] data = { -1729906174200905728L, 6917529028714876959L, 4398046543870L, 0L, 0L, 0L};
8751                return data;
8752        }
8753        public static final BitSet _tokenSet_59 = new BitSet(mk_tokenSet_59());
8754        private static final long[] mk_tokenSet_60() {
8755                long[] data = { -383179802279936L, -16105999329L, 11263397114970111L, 0L, 0L, 0L};
8756                return data;
8757        }
8758        public static final BitSet _tokenSet_60 = new BitSet(mk_tokenSet_60());
8759        private static final long[] mk_tokenSet_61() {
8760                long[] data = { 575897802350002176L, 6917529027641397248L, 4398046543870L, 0L, 0L, 0L};
8761                return data;
8762        }
8763        public static final BitSet _tokenSet_61 = new BitSet(mk_tokenSet_61());
8764        private static final long[] mk_tokenSet_62() {
8765                long[] data = { -383179802279936L, -13153471681L, 11263397123358719L, 0L, 0L, 0L};
8766                return data;
8767        }
8768        public static final BitSet _tokenSet_62 = new BitSet(mk_tokenSet_62());
8769        private static final long[] mk_tokenSet_63() {
8770                long[] data = { 0L, 1610613248L, 0L, 0L};
8771                return data;
8772        }
8773        public static final BitSet _tokenSet_63 = new BitSet(mk_tokenSet_63());
8774        private static final long[] mk_tokenSet_64() {
8775                long[] data = { 2305456530876530688L, -17179741184L, 11263397114970111L, 0L, 0L, 0L};
8776                return data;
8777        }
8778        public static final BitSet _tokenSet_64 = new BitSet(mk_tokenSet_64());
8779        private static final long[] mk_tokenSet_65() {
8780                long[] data = { 575898352105816064L, 53248L, 4398046543840L, 0L, 0L, 0L};
8781                return data;
8782        }
8783        public static final BitSet _tokenSet_65 = new BitSet(mk_tokenSet_65());
8784        private static final long[] mk_tokenSet_66() {
8785                long[] data = { 1152499292141780992L, 9007199254740992L, 4398046511104L, 0L, 0L, 0L};
8786                return data;
8787        }
8788        public static final BitSet _tokenSet_66 = new BitSet(mk_tokenSet_66());
8789        private static final long[] mk_tokenSet_67() {
8790                long[] data = { 1152534476513869824L, 6926536226895884288L, 4398046543870L, 0L, 0L, 0L};
8791                return data;
8792        }
8793        public static final BitSet _tokenSet_67 = new BitSet(mk_tokenSet_67());
8794        private static final long[] mk_tokenSet_68() {
8795                long[] data = { -576703194617348096L, -12885035073L, 4398088486911L, 0L, 0L, 0L};
8796                return data;
8797        }
8798        public static final BitSet _tokenSet_68 = new BitSet(mk_tokenSet_68());
8799        private static final long[] mk_tokenSet_69() {
8800                long[] data = { 1152921504606846976L, -9223372036854775808L, 1L, 0L, 0L, 0L};
8801                return data;
8802        }
8803        public static final BitSet _tokenSet_69 = new BitSet(mk_tokenSet_69());
8804        private static final long[] mk_tokenSet_70() {
8805                long[] data = { 575897802350002176L, 6917529027641143296L, 4398046543870L, 0L, 0L, 0L};
8806                return data;
8807        }
8808        public static final BitSet _tokenSet_70 = new BitSet(mk_tokenSet_70());
8809        private static final long[] mk_tokenSet_71() {
8810                long[] data = { 575897802350002176L, 6917529027641136896L, 4398046543870L, 0L, 0L, 0L};
8811                return data;
8812        }
8813        public static final BitSet _tokenSet_71 = new BitSet(mk_tokenSet_71());
8814        private static final long[] mk_tokenSet_72() {
8815                long[] data = { 576179277326712832L, 6917529027641135104L, 4398046543870L, 0L, 0L, 0L};
8816                return data;
8817        }
8818        public static final BitSet _tokenSet_72 = new BitSet(mk_tokenSet_72());
8819        private static final long[] mk_tokenSet_73() {
8820                long[] data = { 575898352105816064L, 24576L, 4398046511104L, 0L, 0L, 0L};
8821                return data;
8822        }
8823        public static final BitSet _tokenSet_73 = new BitSet(mk_tokenSet_73());
8824        private static final long[] mk_tokenSet_74() {
8825                long[] data = { 1152499292141780992L, 9007199254766592L, 9020393394274304L, 0L, 0L, 0L};
8826                return data;
8827        }
8828        public static final BitSet _tokenSet_74 = new BitSet(mk_tokenSet_74());
8829        private static final long[] mk_tokenSet_75() {
8830                long[] data = { -101704825569280L, -12885035073L, 11263397156913151L, 0L, 0L, 0L};
8831                return data;
8832        }
8833        public static final BitSet _tokenSet_75 = new BitSet(mk_tokenSet_75());
8834        
8835        }