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 synPredMatched291 = false;
2249                        if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
2250                                int _m291 = mark();
2251                                synPredMatched291 = true;
2252                                inputState.guessing++;
2253                                try {
2254                                        {
2255                                        lambdaExpression();
2256                                        }
2257                                }
2258                                catch (RecognitionException pe) {
2259                                        synPredMatched291 = false;
2260                                }
2261                                rewind(_m291);
2262inputState.guessing--;
2263                        }
2264                        if ( synPredMatched291 ) {
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 synPredMatched294 = false;
2283                        if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
2284                                int _m294 = mark();
2285                                synPredMatched294 = true;
2286                                inputState.guessing++;
2287                                try {
2288                                        {
2289                                        lambdaExpression();
2290                                        }
2291                                }
2292                                catch (RecognitionException pe) {
2293                                        synPredMatched294 = false;
2294                                }
2295                                rewind(_m294);
2296inputState.guessing--;
2297                        }
2298                        if ( synPredMatched294 ) {
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 synPredMatched362 = false;
4489                        if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
4490                                int _m362 = mark();
4491                                synPredMatched362 = true;
4492                                inputState.guessing++;
4493                                try {
4494                                        {
4495                                        lambdaExpression();
4496                                        }
4497                                }
4498                                catch (RecognitionException pe) {
4499                                        synPredMatched362 = false;
4500                                }
4501                                rewind(_m362);
4502inputState.guessing--;
4503                        }
4504                        if ( synPredMatched362 ) {
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 synPredMatched359 = false;
4535                        if (((_tokenSet_10.member(LA(1))) && (_tokenSet_19.member(LA(2))))) {
4536                                int _m359 = mark();
4537                                synPredMatched359 = true;
4538                                inputState.guessing++;
4539                                try {
4540                                        {
4541                                        typeSpec(false);
4542                                        match(DOUBLE_COLON);
4543                                        }
4544                                }
4545                                catch (RecognitionException pe) {
4546                                        synPredMatched359 = false;
4547                                }
4548                                rewind(_m359);
4549inputState.guessing--;
4550                        }
4551                        if ( synPredMatched359 ) {
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                                _loop364:
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 _loop364;
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 LITERAL_default:
4699                case LT:
4700                case ENUM:
4701                case AT:
4702                {
4703                        break;
4704                }
4705                default:
4706                {
4707                        throw new NoViableAltException(LT(1), getFilename());
4708                }
4709                }
4710                }
4711                varInitializer_AST = (AST)currentAST.root;
4712                returnAST = varInitializer_AST;
4713        }
4714        
4715        public final void initializer() throws RecognitionException, TokenStreamException {
4716                
4717                returnAST = null;
4718                ASTPair currentAST = new ASTPair();
4719                AST initializer_AST = null;
4720                
4721                switch ( LA(1)) {
4722                case LITERAL_void:
4723                case LITERAL_boolean:
4724                case LITERAL_byte:
4725                case LITERAL_char:
4726                case LITERAL_short:
4727                case LITERAL_int:
4728                case LITERAL_float:
4729                case LITERAL_long:
4730                case LITERAL_double:
4731                case IDENT:
4732                case LPAREN:
4733                case LITERAL_this:
4734                case LITERAL_super:
4735                case PLUS:
4736                case MINUS:
4737                case INC:
4738                case DEC:
4739                case BNOT:
4740                case LNOT:
4741                case LITERAL_true:
4742                case LITERAL_false:
4743                case LITERAL_null:
4744                case LITERAL_new:
4745                case NUM_INT:
4746                case CHAR_LITERAL:
4747                case STRING_LITERAL:
4748                case NUM_FLOAT:
4749                case NUM_LONG:
4750                case NUM_DOUBLE:
4751                case AT:
4752                {
4753                        expression();
4754                        astFactory.addASTChild(currentAST, returnAST);
4755                        initializer_AST = (AST)currentAST.root;
4756                        break;
4757                }
4758                case LCURLY:
4759                {
4760                        arrayInitializer();
4761                        astFactory.addASTChild(currentAST, returnAST);
4762                        initializer_AST = (AST)currentAST.root;
4763                        break;
4764                }
4765                default:
4766                {
4767                        throw new NoViableAltException(LT(1), getFilename());
4768                }
4769                }
4770                returnAST = initializer_AST;
4771        }
4772        
4773        public final void arrayInitializer() throws RecognitionException, TokenStreamException {
4774                
4775                returnAST = null;
4776                ASTPair currentAST = new ASTPair();
4777                AST arrayInitializer_AST = null;
4778                Token  lc = null;
4779                AST lc_AST = null;
4780                
4781                lc = LT(1);
4782                lc_AST = astFactory.create(lc);
4783                astFactory.makeASTRoot(currentAST, lc_AST);
4784                match(LCURLY);
4785                if ( inputState.guessing==0 ) {
4786                        lc_AST.setType(ARRAY_INIT);
4787                }
4788                {
4789                switch ( LA(1)) {
4790                case LITERAL_void:
4791                case LITERAL_boolean:
4792                case LITERAL_byte:
4793                case LITERAL_char:
4794                case LITERAL_short:
4795                case LITERAL_int:
4796                case LITERAL_float:
4797                case LITERAL_long:
4798                case LITERAL_double:
4799                case IDENT:
4800                case LCURLY:
4801                case LPAREN:
4802                case LITERAL_this:
4803                case LITERAL_super:
4804                case PLUS:
4805                case MINUS:
4806                case INC:
4807                case DEC:
4808                case BNOT:
4809                case LNOT:
4810                case LITERAL_true:
4811                case LITERAL_false:
4812                case LITERAL_null:
4813                case LITERAL_new:
4814                case NUM_INT:
4815                case CHAR_LITERAL:
4816                case STRING_LITERAL:
4817                case NUM_FLOAT:
4818                case NUM_LONG:
4819                case NUM_DOUBLE:
4820                case AT:
4821                {
4822                        initializer();
4823                        astFactory.addASTChild(currentAST, returnAST);
4824                        {
4825                        _loop182:
4826                        do {
4827                                if ((LA(1)==COMMA) && (_tokenSet_12.member(LA(2)))) {
4828                                        AST tmp114_AST = null;
4829                                        tmp114_AST = astFactory.create(LT(1));
4830                                        astFactory.addASTChild(currentAST, tmp114_AST);
4831                                        match(COMMA);
4832                                        initializer();
4833                                        astFactory.addASTChild(currentAST, returnAST);
4834                                }
4835                                else {
4836                                        break _loop182;
4837                                }
4838                                
4839                        } while (true);
4840                        }
4841                        break;
4842                }
4843                case RCURLY:
4844                case COMMA:
4845                {
4846                        break;
4847                }
4848                default:
4849                {
4850                        throw new NoViableAltException(LT(1), getFilename());
4851                }
4852                }
4853                }
4854                {
4855                switch ( LA(1)) {
4856                case COMMA:
4857                {
4858                        AST tmp115_AST = null;
4859                        tmp115_AST = astFactory.create(LT(1));
4860                        astFactory.addASTChild(currentAST, tmp115_AST);
4861                        match(COMMA);
4862                        break;
4863                }
4864                case RCURLY:
4865                {
4866                        break;
4867                }
4868                default:
4869                {
4870                        throw new NoViableAltException(LT(1), getFilename());
4871                }
4872                }
4873                }
4874                AST tmp116_AST = null;
4875                tmp116_AST = astFactory.create(LT(1));
4876                astFactory.addASTChild(currentAST, tmp116_AST);
4877                match(RCURLY);
4878                arrayInitializer_AST = (AST)currentAST.root;
4879                returnAST = arrayInitializer_AST;
4880        }
4881        
4882        public final void expression() throws RecognitionException, TokenStreamException {
4883                
4884                returnAST = null;
4885                ASTPair currentAST = new ASTPair();
4886                AST expression_AST = null;
4887                
4888                boolean synPredMatched277 = false;
4889                if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
4890                        int _m277 = mark();
4891                        synPredMatched277 = true;
4892                        inputState.guessing++;
4893                        try {
4894                                {
4895                                lambdaExpression();
4896                                }
4897                        }
4898                        catch (RecognitionException pe) {
4899                                synPredMatched277 = false;
4900                        }
4901                        rewind(_m277);
4902inputState.guessing--;
4903                }
4904                if ( synPredMatched277 ) {
4905                        lambdaExpression();
4906                        astFactory.addASTChild(currentAST, returnAST);
4907                        expression_AST = (AST)currentAST.root;
4908                }
4909                else if (((_tokenSet_14.member(LA(1))) && (_tokenSet_19.member(LA(2))))&&(LA(1)!=RPAREN)) {
4910                        assignmentExpression();
4911                        astFactory.addASTChild(currentAST, returnAST);
4912                        if ( inputState.guessing==0 ) {
4913                                expression_AST = (AST)currentAST.root;
4914                                expression_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(EXPR,"EXPR")).add(expression_AST));
4915                                currentAST.root = expression_AST;
4916                                currentAST.child = expression_AST!=null &&expression_AST.getFirstChild()!=null ?
4917                                        expression_AST.getFirstChild() : expression_AST;
4918                                currentAST.advanceChildToEnd();
4919                        }
4920                        expression_AST = (AST)currentAST.root;
4921                }
4922                else {
4923                        throw new NoViableAltException(LT(1), getFilename());
4924                }
4925                
4926                returnAST = expression_AST;
4927        }
4928        
4929        public final void parameterDeclaration() throws RecognitionException, TokenStreamException {
4930                
4931                returnAST = null;
4932                ASTPair currentAST = new ASTPair();
4933                AST parameterDeclaration_AST = null;
4934                AST pm_AST = null;
4935                AST t_AST = null;
4936                AST id_AST = null;
4937                AST pd_AST = null;
4938                
4939                parameterModifier();
4940                pm_AST = (AST)returnAST;
4941                {
4942                if ((_tokenSet_10.member(LA(1))) && (_tokenSet_50.member(LA(2)))) {
4943                        typeSpec(false);
4944                        t_AST = (AST)returnAST;
4945                }
4946                else if ((LA(1)==IDENT||LA(1)==LITERAL_this) && (_tokenSet_51.member(LA(2)))) {
4947                }
4948                else {
4949                        throw new NoViableAltException(LT(1), getFilename());
4950                }
4951                
4952                }
4953                parameterIdent();
4954                id_AST = (AST)returnAST;
4955                declaratorBrackets(t_AST);
4956                pd_AST = (AST)returnAST;
4957                if ( inputState.guessing==0 ) {
4958                        parameterDeclaration_AST = (AST)currentAST.root;
4959                        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));
4960                        currentAST.root = parameterDeclaration_AST;
4961                        currentAST.child = parameterDeclaration_AST!=null &&parameterDeclaration_AST.getFirstChild()!=null ?
4962                                parameterDeclaration_AST.getFirstChild() : parameterDeclaration_AST;
4963                        currentAST.advanceChildToEnd();
4964                }
4965                returnAST = parameterDeclaration_AST;
4966        }
4967        
4968        public final void variableLengthParameterDeclaration() throws RecognitionException, TokenStreamException {
4969                
4970                returnAST = null;
4971                ASTPair currentAST = new ASTPair();
4972                AST variableLengthParameterDeclaration_AST = null;
4973                AST pm_AST = null;
4974                AST t_AST = null;
4975                Token  td = null;
4976                AST td_AST = null;
4977                AST pd_AST = null;
4978                
4979                parameterModifier();
4980                pm_AST = (AST)returnAST;
4981                variableLengthParameterTypeSpec();
4982                t_AST = (AST)returnAST;
4983                td = LT(1);
4984                td_AST = astFactory.create(td);
4985                match(ELLIPSIS);
4986                AST tmp117_AST = null;
4987                tmp117_AST = astFactory.create(LT(1));
4988                match(IDENT);
4989                declaratorBrackets(t_AST);
4990                pd_AST = (AST)returnAST;
4991                if ( inputState.guessing==0 ) {
4992                        variableLengthParameterDeclaration_AST = (AST)currentAST.root;
4993                        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));
4994                        currentAST.root = variableLengthParameterDeclaration_AST;
4995                        currentAST.child = variableLengthParameterDeclaration_AST!=null &&variableLengthParameterDeclaration_AST.getFirstChild()!=null ?
4996                                variableLengthParameterDeclaration_AST.getFirstChild() : variableLengthParameterDeclaration_AST;
4997                        currentAST.advanceChildToEnd();
4998                }
4999                returnAST = variableLengthParameterDeclaration_AST;
5000        }
5001        
5002        public final void parameterModifier() throws RecognitionException, TokenStreamException {
5003                
5004                returnAST = null;
5005                ASTPair currentAST = new ASTPair();
5006                AST parameterModifier_AST = null;
5007                Token  f = null;
5008                AST f_AST = null;
5009                
5010                {
5011                _loop204:
5012                do {
5013                        if ((LA(1)==AT) && (LA(2)==IDENT)) {
5014                                annotation();
5015                                astFactory.addASTChild(currentAST, returnAST);
5016                        }
5017                        else {
5018                                break _loop204;
5019                        }
5020                        
5021                } while (true);
5022                }
5023                {
5024                switch ( LA(1)) {
5025                case FINAL:
5026                {
5027                        f = LT(1);
5028                        f_AST = astFactory.create(f);
5029                        astFactory.addASTChild(currentAST, f_AST);
5030                        match(FINAL);
5031                        break;
5032                }
5033                case LITERAL_void:
5034                case LITERAL_boolean:
5035                case LITERAL_byte:
5036                case LITERAL_char:
5037                case LITERAL_short:
5038                case LITERAL_int:
5039                case LITERAL_float:
5040                case LITERAL_long:
5041                case LITERAL_double:
5042                case IDENT:
5043                case LITERAL_this:
5044                case AT:
5045                {
5046                        break;
5047                }
5048                default:
5049                {
5050                        throw new NoViableAltException(LT(1), getFilename());
5051                }
5052                }
5053                }
5054                {
5055                _loop207:
5056                do {
5057                        if ((LA(1)==AT) && (LA(2)==IDENT)) {
5058                                annotation();
5059                                astFactory.addASTChild(currentAST, returnAST);
5060                        }
5061                        else {
5062                                break _loop207;
5063                        }
5064                        
5065                } while (true);
5066                }
5067                if ( inputState.guessing==0 ) {
5068                        parameterModifier_AST = (AST)currentAST.root;
5069                        parameterModifier_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(MODIFIERS,"MODIFIERS")).add(parameterModifier_AST));
5070                        currentAST.root = parameterModifier_AST;
5071                        currentAST.child = parameterModifier_AST!=null &&parameterModifier_AST.getFirstChild()!=null ?
5072                                parameterModifier_AST.getFirstChild() : parameterModifier_AST;
5073                        currentAST.advanceChildToEnd();
5074                }
5075                parameterModifier_AST = (AST)currentAST.root;
5076                returnAST = parameterModifier_AST;
5077        }
5078        
5079        public final void parameterIdent() throws RecognitionException, TokenStreamException {
5080                
5081                returnAST = null;
5082                ASTPair currentAST = new ASTPair();
5083                AST parameterIdent_AST = null;
5084                
5085                switch ( LA(1)) {
5086                case LITERAL_this:
5087                {
5088                        AST tmp118_AST = null;
5089                        tmp118_AST = astFactory.create(LT(1));
5090                        astFactory.addASTChild(currentAST, tmp118_AST);
5091                        match(LITERAL_this);
5092                        parameterIdent_AST = (AST)currentAST.root;
5093                        break;
5094                }
5095                case IDENT:
5096                {
5097                        {
5098                        AST tmp119_AST = null;
5099                        tmp119_AST = astFactory.create(LT(1));
5100                        astFactory.addASTChild(currentAST, tmp119_AST);
5101                        match(IDENT);
5102                        {
5103                        switch ( LA(1)) {
5104                        case DOT:
5105                        {
5106                                AST tmp120_AST = null;
5107                                tmp120_AST = astFactory.create(LT(1));
5108                                astFactory.makeASTRoot(currentAST, tmp120_AST);
5109                                match(DOT);
5110                                AST tmp121_AST = null;
5111                                tmp121_AST = astFactory.create(LT(1));
5112                                astFactory.addASTChild(currentAST, tmp121_AST);
5113                                match(LITERAL_this);
5114                                break;
5115                        }
5116                        case LBRACK:
5117                        case COMMA:
5118                        case RPAREN:
5119                        case AT:
5120                        {
5121                                break;
5122                        }
5123                        default:
5124                        {
5125                                throw new NoViableAltException(LT(1), getFilename());
5126                        }
5127                        }
5128                        }
5129                        }
5130                        parameterIdent_AST = (AST)currentAST.root;
5131                        break;
5132                }
5133                default:
5134                {
5135                        throw new NoViableAltException(LT(1), getFilename());
5136                }
5137                }
5138                returnAST = parameterIdent_AST;
5139        }
5140        
5141        public final void catchParameterDeclaration() throws RecognitionException, TokenStreamException {
5142                
5143                returnAST = null;
5144                ASTPair currentAST = new ASTPair();
5145                AST catchParameterDeclaration_AST = null;
5146                AST pm_AST = null;
5147                AST mct_AST = null;
5148                Token  id = null;
5149                AST id_AST = null;
5150                
5151                parameterModifier();
5152                pm_AST = (AST)returnAST;
5153                multiCatchTypes();
5154                mct_AST = (AST)returnAST;
5155                id = LT(1);
5156                id_AST = astFactory.create(id);
5157                match(IDENT);
5158                if ( inputState.guessing==0 ) {
5159                        catchParameterDeclaration_AST = (AST)currentAST.root;
5160                        catchParameterDeclaration_AST =
5161                        (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));
5162                        currentAST.root = catchParameterDeclaration_AST;
5163                        currentAST.child = catchParameterDeclaration_AST!=null &&catchParameterDeclaration_AST.getFirstChild()!=null ?
5164                                catchParameterDeclaration_AST.getFirstChild() : catchParameterDeclaration_AST;
5165                        currentAST.advanceChildToEnd();
5166                }
5167                returnAST = catchParameterDeclaration_AST;
5168        }
5169        
5170        public final void multiCatchTypes() throws RecognitionException, TokenStreamException {
5171                
5172                returnAST = null;
5173                ASTPair currentAST = new ASTPair();
5174                AST multiCatchTypes_AST = null;
5175                
5176                typeSpec(false);
5177                astFactory.addASTChild(currentAST, returnAST);
5178                {
5179                _loop216:
5180                do {
5181                        if ((LA(1)==BOR)) {
5182                                AST tmp122_AST = null;
5183                                tmp122_AST = astFactory.create(LT(1));
5184                                astFactory.makeASTRoot(currentAST, tmp122_AST);
5185                                match(BOR);
5186                                typeSpec(false);
5187                                astFactory.addASTChild(currentAST, returnAST);
5188                        }
5189                        else {
5190                                break _loop216;
5191                        }
5192                        
5193                } while (true);
5194                }
5195                multiCatchTypes_AST = (AST)currentAST.root;
5196                returnAST = multiCatchTypes_AST;
5197        }
5198        
5199        public final void traditionalStatement() throws RecognitionException, TokenStreamException {
5200                
5201                returnAST = null;
5202                ASTPair currentAST = new ASTPair();
5203                AST traditionalStatement_AST = null;
5204                AST m_AST = null;
5205                Token  c = null;
5206                AST c_AST = null;
5207                Token  w = null;
5208                AST w_AST = null;
5209                Token  s = null;
5210                AST s_AST = null;
5211                
5212                switch ( LA(1)) {
5213                case LCURLY:
5214                {
5215                        compoundStatement();
5216                        astFactory.addASTChild(currentAST, returnAST);
5217                        traditionalStatement_AST = (AST)currentAST.root;
5218                        break;
5219                }
5220                case LITERAL_if:
5221                {
5222                        AST tmp123_AST = null;
5223                        tmp123_AST = astFactory.create(LT(1));
5224                        astFactory.makeASTRoot(currentAST, tmp123_AST);
5225                        match(LITERAL_if);
5226                        AST tmp124_AST = null;
5227                        tmp124_AST = astFactory.create(LT(1));
5228                        astFactory.addASTChild(currentAST, tmp124_AST);
5229                        match(LPAREN);
5230                        expression();
5231                        astFactory.addASTChild(currentAST, returnAST);
5232                        AST tmp125_AST = null;
5233                        tmp125_AST = astFactory.create(LT(1));
5234                        astFactory.addASTChild(currentAST, tmp125_AST);
5235                        match(RPAREN);
5236                        statement();
5237                        astFactory.addASTChild(currentAST, returnAST);
5238                        {
5239                        if ((LA(1)==LITERAL_else) && (_tokenSet_39.member(LA(2)))) {
5240                                elseStatement();
5241                                astFactory.addASTChild(currentAST, returnAST);
5242                        }
5243                        else if ((_tokenSet_52.member(LA(1))) && (_tokenSet_53.member(LA(2)))) {
5244                        }
5245                        else {
5246                                throw new NoViableAltException(LT(1), getFilename());
5247                        }
5248                        
5249                        }
5250                        traditionalStatement_AST = (AST)currentAST.root;
5251                        break;
5252                }
5253                case LITERAL_for:
5254                {
5255                        forStatement();
5256                        astFactory.addASTChild(currentAST, returnAST);
5257                        traditionalStatement_AST = (AST)currentAST.root;
5258                        break;
5259                }
5260                case LITERAL_while:
5261                {
5262                        AST tmp126_AST = null;
5263                        tmp126_AST = astFactory.create(LT(1));
5264                        astFactory.makeASTRoot(currentAST, tmp126_AST);
5265                        match(LITERAL_while);
5266                        AST tmp127_AST = null;
5267                        tmp127_AST = astFactory.create(LT(1));
5268                        astFactory.addASTChild(currentAST, tmp127_AST);
5269                        match(LPAREN);
5270                        expression();
5271                        astFactory.addASTChild(currentAST, returnAST);
5272                        AST tmp128_AST = null;
5273                        tmp128_AST = astFactory.create(LT(1));
5274                        astFactory.addASTChild(currentAST, tmp128_AST);
5275                        match(RPAREN);
5276                        statement();
5277                        astFactory.addASTChild(currentAST, returnAST);
5278                        traditionalStatement_AST = (AST)currentAST.root;
5279                        break;
5280                }
5281                case LITERAL_do:
5282                {
5283                        AST tmp129_AST = null;
5284                        tmp129_AST = astFactory.create(LT(1));
5285                        astFactory.makeASTRoot(currentAST, tmp129_AST);
5286                        match(LITERAL_do);
5287                        statement();
5288                        astFactory.addASTChild(currentAST, returnAST);
5289                        w = LT(1);
5290                        w_AST = astFactory.create(w);
5291                        astFactory.addASTChild(currentAST, w_AST);
5292                        match(LITERAL_while);
5293                        if ( inputState.guessing==0 ) {
5294                                w_AST.setType(DO_WHILE);
5295                        }
5296                        AST tmp130_AST = null;
5297                        tmp130_AST = astFactory.create(LT(1));
5298                        astFactory.addASTChild(currentAST, tmp130_AST);
5299                        match(LPAREN);
5300                        expression();
5301                        astFactory.addASTChild(currentAST, returnAST);
5302                        AST tmp131_AST = null;
5303                        tmp131_AST = astFactory.create(LT(1));
5304                        astFactory.addASTChild(currentAST, tmp131_AST);
5305                        match(RPAREN);
5306                        AST tmp132_AST = null;
5307                        tmp132_AST = astFactory.create(LT(1));
5308                        astFactory.addASTChild(currentAST, tmp132_AST);
5309                        match(SEMI);
5310                        traditionalStatement_AST = (AST)currentAST.root;
5311                        break;
5312                }
5313                case LITERAL_break:
5314                {
5315                        AST tmp133_AST = null;
5316                        tmp133_AST = astFactory.create(LT(1));
5317                        astFactory.makeASTRoot(currentAST, tmp133_AST);
5318                        match(LITERAL_break);
5319                        {
5320                        switch ( LA(1)) {
5321                        case IDENT:
5322                        {
5323                                AST tmp134_AST = null;
5324                                tmp134_AST = astFactory.create(LT(1));
5325                                astFactory.addASTChild(currentAST, tmp134_AST);
5326                                match(IDENT);
5327                                break;
5328                        }
5329                        case SEMI:
5330                        {
5331                                break;
5332                        }
5333                        default:
5334                        {
5335                                throw new NoViableAltException(LT(1), getFilename());
5336                        }
5337                        }
5338                        }
5339                        AST tmp135_AST = null;
5340                        tmp135_AST = astFactory.create(LT(1));
5341                        astFactory.addASTChild(currentAST, tmp135_AST);
5342                        match(SEMI);
5343                        traditionalStatement_AST = (AST)currentAST.root;
5344                        break;
5345                }
5346                case LITERAL_continue:
5347                {
5348                        AST tmp136_AST = null;
5349                        tmp136_AST = astFactory.create(LT(1));
5350                        astFactory.makeASTRoot(currentAST, tmp136_AST);
5351                        match(LITERAL_continue);
5352                        {
5353                        switch ( LA(1)) {
5354                        case IDENT:
5355                        {
5356                                AST tmp137_AST = null;
5357                                tmp137_AST = astFactory.create(LT(1));
5358                                astFactory.addASTChild(currentAST, tmp137_AST);
5359                                match(IDENT);
5360                                break;
5361                        }
5362                        case SEMI:
5363                        {
5364                                break;
5365                        }
5366                        default:
5367                        {
5368                                throw new NoViableAltException(LT(1), getFilename());
5369                        }
5370                        }
5371                        }
5372                        AST tmp138_AST = null;
5373                        tmp138_AST = astFactory.create(LT(1));
5374                        astFactory.addASTChild(currentAST, tmp138_AST);
5375                        match(SEMI);
5376                        traditionalStatement_AST = (AST)currentAST.root;
5377                        break;
5378                }
5379                case LITERAL_return:
5380                {
5381                        AST tmp139_AST = null;
5382                        tmp139_AST = astFactory.create(LT(1));
5383                        astFactory.makeASTRoot(currentAST, tmp139_AST);
5384                        match(LITERAL_return);
5385                        {
5386                        switch ( LA(1)) {
5387                        case LITERAL_void:
5388                        case LITERAL_boolean:
5389                        case LITERAL_byte:
5390                        case LITERAL_char:
5391                        case LITERAL_short:
5392                        case LITERAL_int:
5393                        case LITERAL_float:
5394                        case LITERAL_long:
5395                        case LITERAL_double:
5396                        case IDENT:
5397                        case LPAREN:
5398                        case LITERAL_this:
5399                        case LITERAL_super:
5400                        case PLUS:
5401                        case MINUS:
5402                        case INC:
5403                        case DEC:
5404                        case BNOT:
5405                        case LNOT:
5406                        case LITERAL_true:
5407                        case LITERAL_false:
5408                        case LITERAL_null:
5409                        case LITERAL_new:
5410                        case NUM_INT:
5411                        case CHAR_LITERAL:
5412                        case STRING_LITERAL:
5413                        case NUM_FLOAT:
5414                        case NUM_LONG:
5415                        case NUM_DOUBLE:
5416                        case AT:
5417                        {
5418                                expression();
5419                                astFactory.addASTChild(currentAST, returnAST);
5420                                break;
5421                        }
5422                        case SEMI:
5423                        {
5424                                break;
5425                        }
5426                        default:
5427                        {
5428                                throw new NoViableAltException(LT(1), getFilename());
5429                        }
5430                        }
5431                        }
5432                        AST tmp140_AST = null;
5433                        tmp140_AST = astFactory.create(LT(1));
5434                        astFactory.addASTChild(currentAST, tmp140_AST);
5435                        match(SEMI);
5436                        traditionalStatement_AST = (AST)currentAST.root;
5437                        break;
5438                }
5439                case LITERAL_switch:
5440                {
5441                        AST tmp141_AST = null;
5442                        tmp141_AST = astFactory.create(LT(1));
5443                        astFactory.makeASTRoot(currentAST, tmp141_AST);
5444                        match(LITERAL_switch);
5445                        AST tmp142_AST = null;
5446                        tmp142_AST = astFactory.create(LT(1));
5447                        astFactory.addASTChild(currentAST, tmp142_AST);
5448                        match(LPAREN);
5449                        expression();
5450                        astFactory.addASTChild(currentAST, returnAST);
5451                        AST tmp143_AST = null;
5452                        tmp143_AST = astFactory.create(LT(1));
5453                        astFactory.addASTChild(currentAST, tmp143_AST);
5454                        match(RPAREN);
5455                        AST tmp144_AST = null;
5456                        tmp144_AST = astFactory.create(LT(1));
5457                        astFactory.addASTChild(currentAST, tmp144_AST);
5458                        match(LCURLY);
5459                        {
5460                        _loop235:
5461                        do {
5462                                if ((LA(1)==LITERAL_case||LA(1)==LITERAL_default)) {
5463                                        casesGroup();
5464                                        astFactory.addASTChild(currentAST, returnAST);
5465                                }
5466                                else {
5467                                        break _loop235;
5468                                }
5469                                
5470                        } while (true);
5471                        }
5472                        AST tmp145_AST = null;
5473                        tmp145_AST = astFactory.create(LT(1));
5474                        astFactory.addASTChild(currentAST, tmp145_AST);
5475                        match(RCURLY);
5476                        traditionalStatement_AST = (AST)currentAST.root;
5477                        break;
5478                }
5479                case LITERAL_try:
5480                {
5481                        tryBlock();
5482                        astFactory.addASTChild(currentAST, returnAST);
5483                        traditionalStatement_AST = (AST)currentAST.root;
5484                        break;
5485                }
5486                case LITERAL_throw:
5487                {
5488                        AST tmp146_AST = null;
5489                        tmp146_AST = astFactory.create(LT(1));
5490                        astFactory.makeASTRoot(currentAST, tmp146_AST);
5491                        match(LITERAL_throw);
5492                        expression();
5493                        astFactory.addASTChild(currentAST, returnAST);
5494                        AST tmp147_AST = null;
5495                        tmp147_AST = astFactory.create(LT(1));
5496                        astFactory.addASTChild(currentAST, tmp147_AST);
5497                        match(SEMI);
5498                        traditionalStatement_AST = (AST)currentAST.root;
5499                        break;
5500                }
5501                case SEMI:
5502                {
5503                        s = LT(1);
5504                        s_AST = astFactory.create(s);
5505                        astFactory.addASTChild(currentAST, s_AST);
5506                        match(SEMI);
5507                        if ( inputState.guessing==0 ) {
5508                                s_AST.setType(EMPTY_STAT);
5509                        }
5510                        traditionalStatement_AST = (AST)currentAST.root;
5511                        break;
5512                }
5513                default:
5514                        boolean synPredMatched225 = false;
5515                        if (((_tokenSet_54.member(LA(1))) && (_tokenSet_55.member(LA(2))))) {
5516                                int _m225 = mark();
5517                                synPredMatched225 = true;
5518                                inputState.guessing++;
5519                                try {
5520                                        {
5521                                        declaration();
5522                                        }
5523                                }
5524                                catch (RecognitionException pe) {
5525                                        synPredMatched225 = false;
5526                                }
5527                                rewind(_m225);
5528inputState.guessing--;
5529                        }
5530                        if ( synPredMatched225 ) {
5531                                declaration();
5532                                astFactory.addASTChild(currentAST, returnAST);
5533                                AST tmp148_AST = null;
5534                                tmp148_AST = astFactory.create(LT(1));
5535                                astFactory.addASTChild(currentAST, tmp148_AST);
5536                                match(SEMI);
5537                                traditionalStatement_AST = (AST)currentAST.root;
5538                        }
5539                        else {
5540                                boolean synPredMatched228 = false;
5541                                if ((((_tokenSet_14.member(LA(1))) && (_tokenSet_56.member(LA(2))))&&(LA(2) != COLON))) {
5542                                        int _m228 = mark();
5543                                        synPredMatched228 = true;
5544                                        inputState.guessing++;
5545                                        try {
5546                                                {
5547                                                if (!(LA(2) != COLON))
5548                                                  throw new SemanticException("LA(2) != COLON");
5549                                                expression();
5550                                                {
5551                                                if ((LA(1)==SEMI)) {
5552                                                        match(SEMI);
5553                                                }
5554                                                else {
5555                                                }
5556                                                
5557                                                }
5558                                                }
5559                                        }
5560                                        catch (RecognitionException pe) {
5561                                                synPredMatched228 = false;
5562                                        }
5563                                        rewind(_m228);
5564inputState.guessing--;
5565                                }
5566                                if ( synPredMatched228 ) {
5567                                        expression();
5568                                        astFactory.addASTChild(currentAST, returnAST);
5569                                        {
5570                                        if ((LA(1)==SEMI) && (_tokenSet_52.member(LA(2)))) {
5571                                                AST tmp149_AST = null;
5572                                                tmp149_AST = astFactory.create(LT(1));
5573                                                astFactory.addASTChild(currentAST, tmp149_AST);
5574                                                match(SEMI);
5575                                        }
5576                                        else if ((_tokenSet_52.member(LA(1))) && (_tokenSet_53.member(LA(2)))) {
5577                                        }
5578                                        else {
5579                                                throw new NoViableAltException(LT(1), getFilename());
5580                                        }
5581                                        
5582                                        }
5583                                        traditionalStatement_AST = (AST)currentAST.root;
5584                                }
5585                                else if ((_tokenSet_57.member(LA(1))) && (_tokenSet_58.member(LA(2)))) {
5586                                        modifiers();
5587                                        m_AST = (AST)returnAST;
5588                                        classDefinition(m_AST);
5589                                        astFactory.addASTChild(currentAST, returnAST);
5590                                        traditionalStatement_AST = (AST)currentAST.root;
5591                                }
5592                                else if ((LA(1)==IDENT) && (LA(2)==COLON)) {
5593                                        AST tmp150_AST = null;
5594                                        tmp150_AST = astFactory.create(LT(1));
5595                                        astFactory.addASTChild(currentAST, tmp150_AST);
5596                                        match(IDENT);
5597                                        c = LT(1);
5598                                        c_AST = astFactory.create(c);
5599                                        astFactory.makeASTRoot(currentAST, c_AST);
5600                                        match(COLON);
5601                                        if ( inputState.guessing==0 ) {
5602                                                c_AST.setType(LABELED_STAT);
5603                                        }
5604                                        statement();
5605                                        astFactory.addASTChild(currentAST, returnAST);
5606                                        traditionalStatement_AST = (AST)currentAST.root;
5607                                }
5608                                else if ((LA(1)==LITERAL_synchronized) && (LA(2)==LPAREN)) {
5609                                        AST tmp151_AST = null;
5610                                        tmp151_AST = astFactory.create(LT(1));
5611                                        astFactory.makeASTRoot(currentAST, tmp151_AST);
5612                                        match(LITERAL_synchronized);
5613                                        AST tmp152_AST = null;
5614                                        tmp152_AST = astFactory.create(LT(1));
5615                                        astFactory.addASTChild(currentAST, tmp152_AST);
5616                                        match(LPAREN);
5617                                        expression();
5618                                        astFactory.addASTChild(currentAST, returnAST);
5619                                        AST tmp153_AST = null;
5620                                        tmp153_AST = astFactory.create(LT(1));
5621                                        astFactory.addASTChild(currentAST, tmp153_AST);
5622                                        match(RPAREN);
5623                                        compoundStatement();
5624                                        astFactory.addASTChild(currentAST, returnAST);
5625                                        traditionalStatement_AST = (AST)currentAST.root;
5626                                }
5627                        else {
5628                                throw new NoViableAltException(LT(1), getFilename());
5629                        }
5630                        }}
5631                        returnAST = traditionalStatement_AST;
5632                }
5633                
5634        public final void assertStatement() throws RecognitionException, TokenStreamException {
5635                
5636                returnAST = null;
5637                ASTPair currentAST = new ASTPair();
5638                AST assertStatement_AST = null;
5639                
5640                AST tmp154_AST = null;
5641                tmp154_AST = astFactory.create(LT(1));
5642                astFactory.makeASTRoot(currentAST, tmp154_AST);
5643                match(ASSERT);
5644                expression();
5645                astFactory.addASTChild(currentAST, returnAST);
5646                {
5647                switch ( LA(1)) {
5648                case COLON:
5649                {
5650                        AST tmp155_AST = null;
5651                        tmp155_AST = astFactory.create(LT(1));
5652                        astFactory.addASTChild(currentAST, tmp155_AST);
5653                        match(COLON);
5654                        expression();
5655                        astFactory.addASTChild(currentAST, returnAST);
5656                        break;
5657                }
5658                case SEMI:
5659                {
5660                        break;
5661                }
5662                default:
5663                {
5664                        throw new NoViableAltException(LT(1), getFilename());
5665                }
5666                }
5667                }
5668                AST tmp156_AST = null;
5669                tmp156_AST = astFactory.create(LT(1));
5670                astFactory.addASTChild(currentAST, tmp156_AST);
5671                match(SEMI);
5672                assertStatement_AST = (AST)currentAST.root;
5673                returnAST = assertStatement_AST;
5674        }
5675        
5676        public final void elseStatement() throws RecognitionException, TokenStreamException {
5677                
5678                returnAST = null;
5679                ASTPair currentAST = new ASTPair();
5680                AST elseStatement_AST = null;
5681                
5682                AST tmp157_AST = null;
5683                tmp157_AST = astFactory.create(LT(1));
5684                astFactory.makeASTRoot(currentAST, tmp157_AST);
5685                match(LITERAL_else);
5686                statement();
5687                astFactory.addASTChild(currentAST, returnAST);
5688                elseStatement_AST = (AST)currentAST.root;
5689                returnAST = elseStatement_AST;
5690        }
5691        
5692        public final void forStatement() throws RecognitionException, TokenStreamException {
5693                
5694                returnAST = null;
5695                ASTPair currentAST = new ASTPair();
5696                AST forStatement_AST = null;
5697                Token  f = null;
5698                AST f_AST = null;
5699                
5700                f = LT(1);
5701                f_AST = astFactory.create(f);
5702                astFactory.makeASTRoot(currentAST, f_AST);
5703                match(LITERAL_for);
5704                AST tmp158_AST = null;
5705                tmp158_AST = astFactory.create(LT(1));
5706                astFactory.addASTChild(currentAST, tmp158_AST);
5707                match(LPAREN);
5708                {
5709                boolean synPredMatched239 = false;
5710                if (((_tokenSet_59.member(LA(1))) && (_tokenSet_60.member(LA(2))))) {
5711                        int _m239 = mark();
5712                        synPredMatched239 = true;
5713                        inputState.guessing++;
5714                        try {
5715                                {
5716                                forInit();
5717                                match(SEMI);
5718                                }
5719                        }
5720                        catch (RecognitionException pe) {
5721                                synPredMatched239 = false;
5722                        }
5723                        rewind(_m239);
5724inputState.guessing--;
5725                }
5726                if ( synPredMatched239 ) {
5727                        traditionalForClause();
5728                        astFactory.addASTChild(currentAST, returnAST);
5729                }
5730                else if ((_tokenSet_54.member(LA(1))) && (_tokenSet_55.member(LA(2)))) {
5731                        forEachClause();
5732                        astFactory.addASTChild(currentAST, returnAST);
5733                }
5734                else {
5735                        throw new NoViableAltException(LT(1), getFilename());
5736                }
5737                
5738                }
5739                AST tmp159_AST = null;
5740                tmp159_AST = astFactory.create(LT(1));
5741                astFactory.addASTChild(currentAST, tmp159_AST);
5742                match(RPAREN);
5743                statement();
5744                astFactory.addASTChild(currentAST, returnAST);
5745                forStatement_AST = (AST)currentAST.root;
5746                returnAST = forStatement_AST;
5747        }
5748        
5749        public final void casesGroup() throws RecognitionException, TokenStreamException {
5750                
5751                returnAST = null;
5752                ASTPair currentAST = new ASTPair();
5753                AST casesGroup_AST = null;
5754                
5755                {
5756                int _cnt246=0;
5757                _loop246:
5758                do {
5759                        if ((LA(1)==LITERAL_case||LA(1)==LITERAL_default) && (_tokenSet_61.member(LA(2)))) {
5760                                aCase();
5761                                astFactory.addASTChild(currentAST, returnAST);
5762                        }
5763                        else {
5764                                if ( _cnt246>=1 ) { break _loop246; } else {throw new NoViableAltException(LT(1), getFilename());}
5765                        }
5766                        
5767                        _cnt246++;
5768                } while (true);
5769                }
5770                {
5771                if ((_tokenSet_39.member(LA(1))) && (_tokenSet_62.member(LA(2)))) {
5772                        caseSList();
5773                        astFactory.addASTChild(currentAST, returnAST);
5774                }
5775                else if ((_tokenSet_63.member(LA(1))) && (_tokenSet_52.member(LA(2)))) {
5776                }
5777                else {
5778                        throw new NoViableAltException(LT(1), getFilename());
5779                }
5780                
5781                }
5782                if ( inputState.guessing==0 ) {
5783                        casesGroup_AST = (AST)currentAST.root;
5784                        casesGroup_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(CASE_GROUP,"CASE_GROUP")).add(casesGroup_AST));
5785                        currentAST.root = casesGroup_AST;
5786                        currentAST.child = casesGroup_AST!=null &&casesGroup_AST.getFirstChild()!=null ?
5787                                casesGroup_AST.getFirstChild() : casesGroup_AST;
5788                        currentAST.advanceChildToEnd();
5789                }
5790                casesGroup_AST = (AST)currentAST.root;
5791                returnAST = casesGroup_AST;
5792        }
5793        
5794        public final void tryBlock() throws RecognitionException, TokenStreamException {
5795                
5796                returnAST = null;
5797                ASTPair currentAST = new ASTPair();
5798                AST tryBlock_AST = null;
5799                
5800                AST tmp160_AST = null;
5801                tmp160_AST = astFactory.create(LT(1));
5802                astFactory.makeASTRoot(currentAST, tmp160_AST);
5803                match(LITERAL_try);
5804                {
5805                switch ( LA(1)) {
5806                case LPAREN:
5807                {
5808                        resourceSpecification();
5809                        astFactory.addASTChild(currentAST, returnAST);
5810                        break;
5811                }
5812                case LCURLY:
5813                {
5814                        break;
5815                }
5816                default:
5817                {
5818                        throw new NoViableAltException(LT(1), getFilename());
5819                }
5820                }
5821                }
5822                compoundStatement();
5823                astFactory.addASTChild(currentAST, returnAST);
5824                {
5825                _loop264:
5826                do {
5827                        if ((LA(1)==LITERAL_catch)) {
5828                                handler();
5829                                astFactory.addASTChild(currentAST, returnAST);
5830                        }
5831                        else {
5832                                break _loop264;
5833                        }
5834                        
5835                } while (true);
5836                }
5837                {
5838                switch ( LA(1)) {
5839                case LITERAL_finally:
5840                {
5841                        finallyHandler();
5842                        astFactory.addASTChild(currentAST, returnAST);
5843                        break;
5844                }
5845                case FINAL:
5846                case ABSTRACT:
5847                case STRICTFP:
5848                case SEMI:
5849                case LITERAL_void:
5850                case LITERAL_boolean:
5851                case LITERAL_byte:
5852                case LITERAL_char:
5853                case LITERAL_short:
5854                case LITERAL_int:
5855                case LITERAL_float:
5856                case LITERAL_long:
5857                case LITERAL_double:
5858                case IDENT:
5859                case STAR:
5860                case LITERAL_private:
5861                case LITERAL_public:
5862                case LITERAL_protected:
5863                case LITERAL_static:
5864                case LITERAL_transient:
5865                case LITERAL_native:
5866                case LITERAL_synchronized:
5867                case LITERAL_volatile:
5868                case LITERAL_class:
5869                case LCURLY:
5870                case RCURLY:
5871                case LPAREN:
5872                case RPAREN:
5873                case LITERAL_this:
5874                case LITERAL_super:
5875                case COLON:
5876                case LITERAL_if:
5877                case LITERAL_while:
5878                case LITERAL_do:
5879                case LITERAL_break:
5880                case LITERAL_continue:
5881                case LITERAL_return:
5882                case LITERAL_switch:
5883                case LITERAL_throw:
5884                case LITERAL_for:
5885                case LITERAL_else:
5886                case LITERAL_case:
5887                case LITERAL_default:
5888                case LITERAL_try:
5889                case LT:
5890                case GT:
5891                case LE:
5892                case GE:
5893                case LITERAL_instanceof:
5894                case SL:
5895                case SR:
5896                case BSR:
5897                case PLUS:
5898                case MINUS:
5899                case DIV:
5900                case MOD:
5901                case INC:
5902                case DEC:
5903                case BNOT:
5904                case LNOT:
5905                case LITERAL_true:
5906                case LITERAL_false:
5907                case LITERAL_null:
5908                case LITERAL_new:
5909                case NUM_INT:
5910                case CHAR_LITERAL:
5911                case STRING_LITERAL:
5912                case NUM_FLOAT:
5913                case NUM_LONG:
5914                case NUM_DOUBLE:
5915                case ASSERT:
5916                case AT:
5917                {
5918                        break;
5919                }
5920                default:
5921                {
5922                        throw new NoViableAltException(LT(1), getFilename());
5923                }
5924                }
5925                }
5926                tryBlock_AST = (AST)currentAST.root;
5927                returnAST = tryBlock_AST;
5928        }
5929        
5930        public final void forInit() throws RecognitionException, TokenStreamException {
5931                
5932                returnAST = null;
5933                ASTPair currentAST = new ASTPair();
5934                AST forInit_AST = null;
5935                
5936                {
5937                boolean synPredMatched256 = false;
5938                if (((_tokenSet_54.member(LA(1))) && (_tokenSet_55.member(LA(2))))) {
5939                        int _m256 = mark();
5940                        synPredMatched256 = true;
5941                        inputState.guessing++;
5942                        try {
5943                                {
5944                                declaration();
5945                                }
5946                        }
5947                        catch (RecognitionException pe) {
5948                                synPredMatched256 = false;
5949                        }
5950                        rewind(_m256);
5951inputState.guessing--;
5952                }
5953                if ( synPredMatched256 ) {
5954                        declaration();
5955                        astFactory.addASTChild(currentAST, returnAST);
5956                }
5957                else if ((_tokenSet_14.member(LA(1))) && (_tokenSet_64.member(LA(2)))) {
5958                        expressionList();
5959                        astFactory.addASTChild(currentAST, returnAST);
5960                }
5961                else if ((LA(1)==SEMI)) {
5962                }
5963                else {
5964                        throw new NoViableAltException(LT(1), getFilename());
5965                }
5966                
5967                }
5968                if ( inputState.guessing==0 ) {
5969                        forInit_AST = (AST)currentAST.root;
5970                        forInit_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_INIT,"FOR_INIT")).add(forInit_AST));
5971                        currentAST.root = forInit_AST;
5972                        currentAST.child = forInit_AST!=null &&forInit_AST.getFirstChild()!=null ?
5973                                forInit_AST.getFirstChild() : forInit_AST;
5974                        currentAST.advanceChildToEnd();
5975                }
5976                forInit_AST = (AST)currentAST.root;
5977                returnAST = forInit_AST;
5978        }
5979        
5980        public final void traditionalForClause() throws RecognitionException, TokenStreamException {
5981                
5982                returnAST = null;
5983                ASTPair currentAST = new ASTPair();
5984                AST traditionalForClause_AST = null;
5985                
5986                forInit();
5987                astFactory.addASTChild(currentAST, returnAST);
5988                AST tmp161_AST = null;
5989                tmp161_AST = astFactory.create(LT(1));
5990                astFactory.addASTChild(currentAST, tmp161_AST);
5991                match(SEMI);
5992                forCond();
5993                astFactory.addASTChild(currentAST, returnAST);
5994                AST tmp162_AST = null;
5995                tmp162_AST = astFactory.create(LT(1));
5996                astFactory.addASTChild(currentAST, tmp162_AST);
5997                match(SEMI);
5998                forIter();
5999                astFactory.addASTChild(currentAST, returnAST);
6000                traditionalForClause_AST = (AST)currentAST.root;
6001                returnAST = traditionalForClause_AST;
6002        }
6003        
6004        public final void forEachClause() throws RecognitionException, TokenStreamException {
6005                
6006                returnAST = null;
6007                ASTPair currentAST = new ASTPair();
6008                AST forEachClause_AST = null;
6009                
6010                forEachDeclarator();
6011                astFactory.addASTChild(currentAST, returnAST);
6012                AST tmp163_AST = null;
6013                tmp163_AST = astFactory.create(LT(1));
6014                astFactory.addASTChild(currentAST, tmp163_AST);
6015                match(COLON);
6016                expression();
6017                astFactory.addASTChild(currentAST, returnAST);
6018                if ( inputState.guessing==0 ) {
6019                        forEachClause_AST = (AST)currentAST.root;
6020                        forEachClause_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_EACH_CLAUSE,"FOR_EACH_CLAUSE")).add(forEachClause_AST));
6021                        currentAST.root = forEachClause_AST;
6022                        currentAST.child = forEachClause_AST!=null &&forEachClause_AST.getFirstChild()!=null ?
6023                                forEachClause_AST.getFirstChild() : forEachClause_AST;
6024                        currentAST.advanceChildToEnd();
6025                }
6026                forEachClause_AST = (AST)currentAST.root;
6027                returnAST = forEachClause_AST;
6028        }
6029        
6030        public final void forCond() throws RecognitionException, TokenStreamException {
6031                
6032                returnAST = null;
6033                ASTPair currentAST = new ASTPair();
6034                AST forCond_AST = null;
6035                
6036                {
6037                switch ( LA(1)) {
6038                case LITERAL_void:
6039                case LITERAL_boolean:
6040                case LITERAL_byte:
6041                case LITERAL_char:
6042                case LITERAL_short:
6043                case LITERAL_int:
6044                case LITERAL_float:
6045                case LITERAL_long:
6046                case LITERAL_double:
6047                case IDENT:
6048                case LPAREN:
6049                case LITERAL_this:
6050                case LITERAL_super:
6051                case PLUS:
6052                case MINUS:
6053                case INC:
6054                case DEC:
6055                case BNOT:
6056                case LNOT:
6057                case LITERAL_true:
6058                case LITERAL_false:
6059                case LITERAL_null:
6060                case LITERAL_new:
6061                case NUM_INT:
6062                case CHAR_LITERAL:
6063                case STRING_LITERAL:
6064                case NUM_FLOAT:
6065                case NUM_LONG:
6066                case NUM_DOUBLE:
6067                case AT:
6068                {
6069                        expression();
6070                        astFactory.addASTChild(currentAST, returnAST);
6071                        break;
6072                }
6073                case SEMI:
6074                {
6075                        break;
6076                }
6077                default:
6078                {
6079                        throw new NoViableAltException(LT(1), getFilename());
6080                }
6081                }
6082                }
6083                if ( inputState.guessing==0 ) {
6084                        forCond_AST = (AST)currentAST.root;
6085                        forCond_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_CONDITION,"FOR_CONDITION")).add(forCond_AST));
6086                        currentAST.root = forCond_AST;
6087                        currentAST.child = forCond_AST!=null &&forCond_AST.getFirstChild()!=null ?
6088                                forCond_AST.getFirstChild() : forCond_AST;
6089                        currentAST.advanceChildToEnd();
6090                }
6091                forCond_AST = (AST)currentAST.root;
6092                returnAST = forCond_AST;
6093        }
6094        
6095        public final void forIter() throws RecognitionException, TokenStreamException {
6096                
6097                returnAST = null;
6098                ASTPair currentAST = new ASTPair();
6099                AST forIter_AST = null;
6100                
6101                {
6102                switch ( LA(1)) {
6103                case LITERAL_void:
6104                case LITERAL_boolean:
6105                case LITERAL_byte:
6106                case LITERAL_char:
6107                case LITERAL_short:
6108                case LITERAL_int:
6109                case LITERAL_float:
6110                case LITERAL_long:
6111                case LITERAL_double:
6112                case IDENT:
6113                case LPAREN:
6114                case LITERAL_this:
6115                case LITERAL_super:
6116                case PLUS:
6117                case MINUS:
6118                case INC:
6119                case DEC:
6120                case BNOT:
6121                case LNOT:
6122                case LITERAL_true:
6123                case LITERAL_false:
6124                case LITERAL_null:
6125                case LITERAL_new:
6126                case NUM_INT:
6127                case CHAR_LITERAL:
6128                case STRING_LITERAL:
6129                case NUM_FLOAT:
6130                case NUM_LONG:
6131                case NUM_DOUBLE:
6132                case AT:
6133                {
6134                        expressionList();
6135                        astFactory.addASTChild(currentAST, returnAST);
6136                        break;
6137                }
6138                case RPAREN:
6139                {
6140                        break;
6141                }
6142                default:
6143                {
6144                        throw new NoViableAltException(LT(1), getFilename());
6145                }
6146                }
6147                }
6148                if ( inputState.guessing==0 ) {
6149                        forIter_AST = (AST)currentAST.root;
6150                        forIter_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(FOR_ITERATOR,"FOR_ITERATOR")).add(forIter_AST));
6151                        currentAST.root = forIter_AST;
6152                        currentAST.child = forIter_AST!=null &&forIter_AST.getFirstChild()!=null ?
6153                                forIter_AST.getFirstChild() : forIter_AST;
6154                        currentAST.advanceChildToEnd();
6155                }
6156                forIter_AST = (AST)currentAST.root;
6157                returnAST = forIter_AST;
6158        }
6159        
6160        public final void forEachDeclarator() throws RecognitionException, TokenStreamException {
6161                
6162                returnAST = null;
6163                ASTPair currentAST = new ASTPair();
6164                AST forEachDeclarator_AST = null;
6165                AST m_AST = null;
6166                AST t_AST = null;
6167                Token  id = null;
6168                AST id_AST = null;
6169                AST d_AST = null;
6170                
6171                modifiers();
6172                m_AST = (AST)returnAST;
6173                typeSpec(false);
6174                t_AST = (AST)returnAST;
6175                id = LT(1);
6176                id_AST = astFactory.create(id);
6177                match(IDENT);
6178                declaratorBrackets(t_AST);
6179                d_AST = (AST)returnAST;
6180                if ( inputState.guessing==0 ) {
6181                        forEachDeclarator_AST = (AST)currentAST.root;
6182                        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));
6183                        currentAST.root = forEachDeclarator_AST;
6184                        currentAST.child = forEachDeclarator_AST!=null &&forEachDeclarator_AST.getFirstChild()!=null ?
6185                                forEachDeclarator_AST.getFirstChild() : forEachDeclarator_AST;
6186                        currentAST.advanceChildToEnd();
6187                }
6188                returnAST = forEachDeclarator_AST;
6189        }
6190        
6191        public final void aCase() throws RecognitionException, TokenStreamException {
6192                
6193                returnAST = null;
6194                ASTPair currentAST = new ASTPair();
6195                AST aCase_AST = null;
6196                
6197                {
6198                switch ( LA(1)) {
6199                case LITERAL_case:
6200                {
6201                        AST tmp164_AST = null;
6202                        tmp164_AST = astFactory.create(LT(1));
6203                        astFactory.makeASTRoot(currentAST, tmp164_AST);
6204                        match(LITERAL_case);
6205                        expression();
6206                        astFactory.addASTChild(currentAST, returnAST);
6207                        break;
6208                }
6209                case LITERAL_default:
6210                {
6211                        AST tmp165_AST = null;
6212                        tmp165_AST = astFactory.create(LT(1));
6213                        astFactory.makeASTRoot(currentAST, tmp165_AST);
6214                        match(LITERAL_default);
6215                        break;
6216                }
6217                default:
6218                {
6219                        throw new NoViableAltException(LT(1), getFilename());
6220                }
6221                }
6222                }
6223                AST tmp166_AST = null;
6224                tmp166_AST = astFactory.create(LT(1));
6225                astFactory.addASTChild(currentAST, tmp166_AST);
6226                match(COLON);
6227                aCase_AST = (AST)currentAST.root;
6228                returnAST = aCase_AST;
6229        }
6230        
6231        public final void caseSList() throws RecognitionException, TokenStreamException {
6232                
6233                returnAST = null;
6234                ASTPair currentAST = new ASTPair();
6235                AST caseSList_AST = null;
6236                
6237                {
6238                int _cnt252=0;
6239                _loop252:
6240                do {
6241                        if (((_tokenSet_39.member(LA(1))) && (_tokenSet_62.member(LA(2))))&&(LA(1)!=LITERAL_default)) {
6242                                statement();
6243                                astFactory.addASTChild(currentAST, returnAST);
6244                        }
6245                        else {
6246                                if ( _cnt252>=1 ) { break _loop252; } else {throw new NoViableAltException(LT(1), getFilename());}
6247                        }
6248                        
6249                        _cnt252++;
6250                } while (true);
6251                }
6252                if ( inputState.guessing==0 ) {
6253                        caseSList_AST = (AST)currentAST.root;
6254                        caseSList_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(SLIST,"SLIST")).add(caseSList_AST));
6255                        currentAST.root = caseSList_AST;
6256                        currentAST.child = caseSList_AST!=null &&caseSList_AST.getFirstChild()!=null ?
6257                                caseSList_AST.getFirstChild() : caseSList_AST;
6258                        currentAST.advanceChildToEnd();
6259                }
6260                caseSList_AST = (AST)currentAST.root;
6261                returnAST = caseSList_AST;
6262        }
6263        
6264        public final void expressionList() throws RecognitionException, TokenStreamException {
6265                
6266                returnAST = null;
6267                ASTPair currentAST = new ASTPair();
6268                AST expressionList_AST = null;
6269                
6270                expression();
6271                astFactory.addASTChild(currentAST, returnAST);
6272                {
6273                _loop280:
6274                do {
6275                        if ((LA(1)==COMMA)) {
6276                                AST tmp167_AST = null;
6277                                tmp167_AST = astFactory.create(LT(1));
6278                                astFactory.addASTChild(currentAST, tmp167_AST);
6279                                match(COMMA);
6280                                expression();
6281                                astFactory.addASTChild(currentAST, returnAST);
6282                        }
6283                        else {
6284                                break _loop280;
6285                        }
6286                        
6287                } while (true);
6288                }
6289                if ( inputState.guessing==0 ) {
6290                        expressionList_AST = (AST)currentAST.root;
6291                        expressionList_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(ELIST,"ELIST")).add(expressionList_AST));
6292                        currentAST.root = expressionList_AST;
6293                        currentAST.child = expressionList_AST!=null &&expressionList_AST.getFirstChild()!=null ?
6294                                expressionList_AST.getFirstChild() : expressionList_AST;
6295                        currentAST.advanceChildToEnd();
6296                }
6297                expressionList_AST = (AST)currentAST.root;
6298                returnAST = expressionList_AST;
6299        }
6300        
6301        public final void resourceSpecification() throws RecognitionException, TokenStreamException {
6302                
6303                returnAST = null;
6304                ASTPair currentAST = new ASTPair();
6305                AST resourceSpecification_AST = null;
6306                
6307                AST tmp168_AST = null;
6308                tmp168_AST = astFactory.create(LT(1));
6309                astFactory.addASTChild(currentAST, tmp168_AST);
6310                match(LPAREN);
6311                resources();
6312                astFactory.addASTChild(currentAST, returnAST);
6313                {
6314                switch ( LA(1)) {
6315                case SEMI:
6316                {
6317                        AST tmp169_AST = null;
6318                        tmp169_AST = astFactory.create(LT(1));
6319                        astFactory.addASTChild(currentAST, tmp169_AST);
6320                        match(SEMI);
6321                        break;
6322                }
6323                case RPAREN:
6324                {
6325                        break;
6326                }
6327                default:
6328                {
6329                        throw new NoViableAltException(LT(1), getFilename());
6330                }
6331                }
6332                }
6333                AST tmp170_AST = null;
6334                tmp170_AST = astFactory.create(LT(1));
6335                astFactory.addASTChild(currentAST, tmp170_AST);
6336                match(RPAREN);
6337                if ( inputState.guessing==0 ) {
6338                        resourceSpecification_AST = (AST)currentAST.root;
6339                        resourceSpecification_AST =
6340                        (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(RESOURCE_SPECIFICATION,"RESOURCE_SPECIFICATION")).add(resourceSpecification_AST));
6341                        currentAST.root = resourceSpecification_AST;
6342                        currentAST.child = resourceSpecification_AST!=null &&resourceSpecification_AST.getFirstChild()!=null ?
6343                                resourceSpecification_AST.getFirstChild() : resourceSpecification_AST;
6344                        currentAST.advanceChildToEnd();
6345                }
6346                resourceSpecification_AST = (AST)currentAST.root;
6347                returnAST = resourceSpecification_AST;
6348        }
6349        
6350        public final void handler() throws RecognitionException, TokenStreamException {
6351                
6352                returnAST = null;
6353                ASTPair currentAST = new ASTPair();
6354                AST handler_AST = null;
6355                
6356                AST tmp171_AST = null;
6357                tmp171_AST = astFactory.create(LT(1));
6358                astFactory.makeASTRoot(currentAST, tmp171_AST);
6359                match(LITERAL_catch);
6360                AST tmp172_AST = null;
6361                tmp172_AST = astFactory.create(LT(1));
6362                astFactory.addASTChild(currentAST, tmp172_AST);
6363                match(LPAREN);
6364                catchParameterDeclaration();
6365                astFactory.addASTChild(currentAST, returnAST);
6366                AST tmp173_AST = null;
6367                tmp173_AST = astFactory.create(LT(1));
6368                astFactory.addASTChild(currentAST, tmp173_AST);
6369                match(RPAREN);
6370                compoundStatement();
6371                astFactory.addASTChild(currentAST, returnAST);
6372                handler_AST = (AST)currentAST.root;
6373                returnAST = handler_AST;
6374        }
6375        
6376        public final void finallyHandler() throws RecognitionException, TokenStreamException {
6377                
6378                returnAST = null;
6379                ASTPair currentAST = new ASTPair();
6380                AST finallyHandler_AST = null;
6381                
6382                AST tmp174_AST = null;
6383                tmp174_AST = astFactory.create(LT(1));
6384                astFactory.makeASTRoot(currentAST, tmp174_AST);
6385                match(LITERAL_finally);
6386                compoundStatement();
6387                astFactory.addASTChild(currentAST, returnAST);
6388                finallyHandler_AST = (AST)currentAST.root;
6389                returnAST = finallyHandler_AST;
6390        }
6391        
6392        public final void resources() throws RecognitionException, TokenStreamException {
6393                
6394                returnAST = null;
6395                ASTPair currentAST = new ASTPair();
6396                AST resources_AST = null;
6397                
6398                resource();
6399                astFactory.addASTChild(currentAST, returnAST);
6400                {
6401                _loop270:
6402                do {
6403                        if ((LA(1)==SEMI) && (_tokenSet_54.member(LA(2)))) {
6404                                AST tmp175_AST = null;
6405                                tmp175_AST = astFactory.create(LT(1));
6406                                astFactory.addASTChild(currentAST, tmp175_AST);
6407                                match(SEMI);
6408                                resource();
6409                                astFactory.addASTChild(currentAST, returnAST);
6410                        }
6411                        else {
6412                                break _loop270;
6413                        }
6414                        
6415                } while (true);
6416                }
6417                if ( inputState.guessing==0 ) {
6418                        resources_AST = (AST)currentAST.root;
6419                        resources_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(RESOURCES,"RESOURCES")).add(resources_AST));
6420                        currentAST.root = resources_AST;
6421                        currentAST.child = resources_AST!=null &&resources_AST.getFirstChild()!=null ?
6422                                resources_AST.getFirstChild() : resources_AST;
6423                        currentAST.advanceChildToEnd();
6424                }
6425                resources_AST = (AST)currentAST.root;
6426                returnAST = resources_AST;
6427        }
6428        
6429        public final void resource() throws RecognitionException, TokenStreamException {
6430                
6431                returnAST = null;
6432                ASTPair currentAST = new ASTPair();
6433                AST resource_AST = null;
6434                
6435                if ((LA(1)==IDENT) && (LA(2)==SEMI||LA(2)==RPAREN)) {
6436                        AST tmp176_AST = null;
6437                        tmp176_AST = astFactory.create(LT(1));
6438                        astFactory.addASTChild(currentAST, tmp176_AST);
6439                        match(IDENT);
6440                        resource_AST = (AST)currentAST.root;
6441                }
6442                else if ((_tokenSet_54.member(LA(1))) && (_tokenSet_55.member(LA(2)))) {
6443                        modifiers();
6444                        astFactory.addASTChild(currentAST, returnAST);
6445                        typeSpec(true);
6446                        astFactory.addASTChild(currentAST, returnAST);
6447                        AST tmp177_AST = null;
6448                        tmp177_AST = astFactory.create(LT(1));
6449                        astFactory.addASTChild(currentAST, tmp177_AST);
6450                        match(IDENT);
6451                        resource_assign();
6452                        astFactory.addASTChild(currentAST, returnAST);
6453                        if ( inputState.guessing==0 ) {
6454                                resource_AST = (AST)currentAST.root;
6455                                resource_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(RESOURCE,"RESOURCE")).add(resource_AST));
6456                                currentAST.root = resource_AST;
6457                                currentAST.child = resource_AST!=null &&resource_AST.getFirstChild()!=null ?
6458                                        resource_AST.getFirstChild() : resource_AST;
6459                                currentAST.advanceChildToEnd();
6460                        }
6461                        resource_AST = (AST)currentAST.root;
6462                }
6463                else {
6464                        throw new NoViableAltException(LT(1), getFilename());
6465                }
6466                
6467                returnAST = resource_AST;
6468        }
6469        
6470        public final void resource_assign() throws RecognitionException, TokenStreamException {
6471                
6472                returnAST = null;
6473                ASTPair currentAST = new ASTPair();
6474                AST resource_assign_AST = null;
6475                
6476                AST tmp178_AST = null;
6477                tmp178_AST = astFactory.create(LT(1));
6478                astFactory.makeASTRoot(currentAST, tmp178_AST);
6479                match(ASSIGN);
6480                expression();
6481                astFactory.addASTChild(currentAST, returnAST);
6482                resource_assign_AST = (AST)currentAST.root;
6483                returnAST = resource_assign_AST;
6484        }
6485        
6486        public final void lambdaExpression() throws RecognitionException, TokenStreamException {
6487                
6488                returnAST = null;
6489                ASTPair currentAST = new ASTPair();
6490                AST lambdaExpression_AST = null;
6491                
6492                lambdaParameters();
6493                astFactory.addASTChild(currentAST, returnAST);
6494                AST tmp179_AST = null;
6495                tmp179_AST = astFactory.create(LT(1));
6496                astFactory.makeASTRoot(currentAST, tmp179_AST);
6497                match(LAMBDA);
6498                lambdaBody();
6499                astFactory.addASTChild(currentAST, returnAST);
6500                lambdaExpression_AST = (AST)currentAST.root;
6501                returnAST = lambdaExpression_AST;
6502        }
6503        
6504        public final void assignmentExpression() throws RecognitionException, TokenStreamException {
6505                
6506                returnAST = null;
6507                ASTPair currentAST = new ASTPair();
6508                AST assignmentExpression_AST = null;
6509                
6510                conditionalExpression();
6511                astFactory.addASTChild(currentAST, returnAST);
6512                {
6513                switch ( LA(1)) {
6514                case ASSIGN:
6515                case PLUS_ASSIGN:
6516                case MINUS_ASSIGN:
6517                case STAR_ASSIGN:
6518                case DIV_ASSIGN:
6519                case MOD_ASSIGN:
6520                case SR_ASSIGN:
6521                case BSR_ASSIGN:
6522                case SL_ASSIGN:
6523                case BAND_ASSIGN:
6524                case BXOR_ASSIGN:
6525                case BOR_ASSIGN:
6526                {
6527                        {
6528                        switch ( LA(1)) {
6529                        case ASSIGN:
6530                        {
6531                                AST tmp180_AST = null;
6532                                tmp180_AST = astFactory.create(LT(1));
6533                                astFactory.makeASTRoot(currentAST, tmp180_AST);
6534                                match(ASSIGN);
6535                                break;
6536                        }
6537                        case PLUS_ASSIGN:
6538                        {
6539                                AST tmp181_AST = null;
6540                                tmp181_AST = astFactory.create(LT(1));
6541                                astFactory.makeASTRoot(currentAST, tmp181_AST);
6542                                match(PLUS_ASSIGN);
6543                                break;
6544                        }
6545                        case MINUS_ASSIGN:
6546                        {
6547                                AST tmp182_AST = null;
6548                                tmp182_AST = astFactory.create(LT(1));
6549                                astFactory.makeASTRoot(currentAST, tmp182_AST);
6550                                match(MINUS_ASSIGN);
6551                                break;
6552                        }
6553                        case STAR_ASSIGN:
6554                        {
6555                                AST tmp183_AST = null;
6556                                tmp183_AST = astFactory.create(LT(1));
6557                                astFactory.makeASTRoot(currentAST, tmp183_AST);
6558                                match(STAR_ASSIGN);
6559                                break;
6560                        }
6561                        case DIV_ASSIGN:
6562                        {
6563                                AST tmp184_AST = null;
6564                                tmp184_AST = astFactory.create(LT(1));
6565                                astFactory.makeASTRoot(currentAST, tmp184_AST);
6566                                match(DIV_ASSIGN);
6567                                break;
6568                        }
6569                        case MOD_ASSIGN:
6570                        {
6571                                AST tmp185_AST = null;
6572                                tmp185_AST = astFactory.create(LT(1));
6573                                astFactory.makeASTRoot(currentAST, tmp185_AST);
6574                                match(MOD_ASSIGN);
6575                                break;
6576                        }
6577                        case SR_ASSIGN:
6578                        {
6579                                AST tmp186_AST = null;
6580                                tmp186_AST = astFactory.create(LT(1));
6581                                astFactory.makeASTRoot(currentAST, tmp186_AST);
6582                                match(SR_ASSIGN);
6583                                break;
6584                        }
6585                        case BSR_ASSIGN:
6586                        {
6587                                AST tmp187_AST = null;
6588                                tmp187_AST = astFactory.create(LT(1));
6589                                astFactory.makeASTRoot(currentAST, tmp187_AST);
6590                                match(BSR_ASSIGN);
6591                                break;
6592                        }
6593                        case SL_ASSIGN:
6594                        {
6595                                AST tmp188_AST = null;
6596                                tmp188_AST = astFactory.create(LT(1));
6597                                astFactory.makeASTRoot(currentAST, tmp188_AST);
6598                                match(SL_ASSIGN);
6599                                break;
6600                        }
6601                        case BAND_ASSIGN:
6602                        {
6603                                AST tmp189_AST = null;
6604                                tmp189_AST = astFactory.create(LT(1));
6605                                astFactory.makeASTRoot(currentAST, tmp189_AST);
6606                                match(BAND_ASSIGN);
6607                                break;
6608                        }
6609                        case BXOR_ASSIGN:
6610                        {
6611                                AST tmp190_AST = null;
6612                                tmp190_AST = astFactory.create(LT(1));
6613                                astFactory.makeASTRoot(currentAST, tmp190_AST);
6614                                match(BXOR_ASSIGN);
6615                                break;
6616                        }
6617                        case BOR_ASSIGN:
6618                        {
6619                                AST tmp191_AST = null;
6620                                tmp191_AST = astFactory.create(LT(1));
6621                                astFactory.makeASTRoot(currentAST, tmp191_AST);
6622                                match(BOR_ASSIGN);
6623                                break;
6624                        }
6625                        default:
6626                        {
6627                                throw new NoViableAltException(LT(1), getFilename());
6628                        }
6629                        }
6630                        }
6631                        {
6632                        boolean synPredMatched286 = false;
6633                        if (((LA(1)==IDENT||LA(1)==LPAREN) && (_tokenSet_17.member(LA(2))))) {
6634                                int _m286 = mark();
6635                                synPredMatched286 = true;
6636                                inputState.guessing++;
6637                                try {
6638                                        {
6639                                        lambdaExpression();
6640                                        }
6641                                }
6642                                catch (RecognitionException pe) {
6643                                        synPredMatched286 = false;
6644                                }
6645                                rewind(_m286);
6646inputState.guessing--;
6647                        }
6648                        if ( synPredMatched286 ) {
6649                                lambdaExpression();
6650                                astFactory.addASTChild(currentAST, returnAST);
6651                        }
6652                        else if ((_tokenSet_14.member(LA(1))) && (_tokenSet_19.member(LA(2)))) {
6653                                assignmentExpression();
6654                                astFactory.addASTChild(currentAST, returnAST);
6655                        }
6656                        else {
6657                                throw new NoViableAltException(LT(1), getFilename());
6658                        }
6659                        
6660                        }
6661                        break;
6662                }
6663                case FINAL:
6664                case ABSTRACT:
6665                case STRICTFP:
6666                case SEMI:
6667                case RBRACK:
6668                case LITERAL_void:
6669                case LITERAL_boolean:
6670                case LITERAL_byte:
6671                case LITERAL_char:
6672                case LITERAL_short:
6673                case LITERAL_int:
6674                case LITERAL_float:
6675                case LITERAL_long:
6676                case LITERAL_double:
6677                case IDENT:
6678                case STAR:
6679                case LITERAL_private:
6680                case LITERAL_public:
6681                case LITERAL_protected:
6682                case LITERAL_static:
6683                case LITERAL_transient:
6684                case LITERAL_native:
6685                case LITERAL_synchronized:
6686                case LITERAL_volatile:
6687                case LITERAL_class:
6688                case LITERAL_interface:
6689                case LCURLY:
6690                case RCURLY:
6691                case COMMA:
6692                case LPAREN:
6693                case RPAREN:
6694                case LITERAL_this:
6695                case LITERAL_super:
6696                case COLON:
6697                case LITERAL_if:
6698                case LITERAL_while:
6699                case LITERAL_do:
6700                case LITERAL_break:
6701                case LITERAL_continue:
6702                case LITERAL_return:
6703                case LITERAL_switch:
6704                case LITERAL_throw:
6705                case LITERAL_for:
6706                case LITERAL_else:
6707                case LITERAL_case:
6708                case LITERAL_default:
6709                case LITERAL_try:
6710                case LT:
6711                case GT:
6712                case LE:
6713                case GE:
6714                case LITERAL_instanceof:
6715                case SL:
6716                case SR:
6717                case BSR:
6718                case PLUS:
6719                case MINUS:
6720                case DIV:
6721                case MOD:
6722                case INC:
6723                case DEC:
6724                case BNOT:
6725                case LNOT:
6726                case LITERAL_true:
6727                case LITERAL_false:
6728                case LITERAL_null:
6729                case LITERAL_new:
6730                case NUM_INT:
6731                case CHAR_LITERAL:
6732                case STRING_LITERAL:
6733                case NUM_FLOAT:
6734                case NUM_LONG:
6735                case NUM_DOUBLE:
6736                case ASSERT:
6737                case ENUM:
6738                case AT:
6739                {
6740                        break;
6741                }
6742                default:
6743                {
6744                        throw new NoViableAltException(LT(1), getFilename());
6745                }
6746                }
6747                }
6748                assignmentExpression_AST = (AST)currentAST.root;
6749                returnAST = assignmentExpression_AST;
6750        }
6751        
6752        public final void logicalOrExpression() throws RecognitionException, TokenStreamException {
6753                
6754                returnAST = null;
6755                ASTPair currentAST = new ASTPair();
6756                AST logicalOrExpression_AST = null;
6757                
6758                logicalAndExpression();
6759                astFactory.addASTChild(currentAST, returnAST);
6760                {
6761                _loop297:
6762                do {
6763                        if ((LA(1)==LOR)) {
6764                                AST tmp192_AST = null;
6765                                tmp192_AST = astFactory.create(LT(1));
6766                                astFactory.makeASTRoot(currentAST, tmp192_AST);
6767                                match(LOR);
6768                                logicalAndExpression();
6769                                astFactory.addASTChild(currentAST, returnAST);
6770                        }
6771                        else {
6772                                break _loop297;
6773                        }
6774                        
6775                } while (true);
6776                }
6777                logicalOrExpression_AST = (AST)currentAST.root;
6778                returnAST = logicalOrExpression_AST;
6779        }
6780        
6781        public final void logicalAndExpression() throws RecognitionException, TokenStreamException {
6782                
6783                returnAST = null;
6784                ASTPair currentAST = new ASTPair();
6785                AST logicalAndExpression_AST = null;
6786                
6787                inclusiveOrExpression();
6788                astFactory.addASTChild(currentAST, returnAST);
6789                {
6790                _loop300:
6791                do {
6792                        if ((LA(1)==LAND)) {
6793                                AST tmp193_AST = null;
6794                                tmp193_AST = astFactory.create(LT(1));
6795                                astFactory.makeASTRoot(currentAST, tmp193_AST);
6796                                match(LAND);
6797                                inclusiveOrExpression();
6798                                astFactory.addASTChild(currentAST, returnAST);
6799                        }
6800                        else {
6801                                break _loop300;
6802                        }
6803                        
6804                } while (true);
6805                }
6806                logicalAndExpression_AST = (AST)currentAST.root;
6807                returnAST = logicalAndExpression_AST;
6808        }
6809        
6810        public final void inclusiveOrExpression() throws RecognitionException, TokenStreamException {
6811                
6812                returnAST = null;
6813                ASTPair currentAST = new ASTPair();
6814                AST inclusiveOrExpression_AST = null;
6815                
6816                exclusiveOrExpression();
6817                astFactory.addASTChild(currentAST, returnAST);
6818                {
6819                _loop303:
6820                do {
6821                        if ((LA(1)==BOR)) {
6822                                AST tmp194_AST = null;
6823                                tmp194_AST = astFactory.create(LT(1));
6824                                astFactory.makeASTRoot(currentAST, tmp194_AST);
6825                                match(BOR);
6826                                exclusiveOrExpression();
6827                                astFactory.addASTChild(currentAST, returnAST);
6828                        }
6829                        else {
6830                                break _loop303;
6831                        }
6832                        
6833                } while (true);
6834                }
6835                inclusiveOrExpression_AST = (AST)currentAST.root;
6836                returnAST = inclusiveOrExpression_AST;
6837        }
6838        
6839        public final void exclusiveOrExpression() throws RecognitionException, TokenStreamException {
6840                
6841                returnAST = null;
6842                ASTPair currentAST = new ASTPair();
6843                AST exclusiveOrExpression_AST = null;
6844                
6845                andExpression();
6846                astFactory.addASTChild(currentAST, returnAST);
6847                {
6848                _loop306:
6849                do {
6850                        if ((LA(1)==BXOR)) {
6851                                AST tmp195_AST = null;
6852                                tmp195_AST = astFactory.create(LT(1));
6853                                astFactory.makeASTRoot(currentAST, tmp195_AST);
6854                                match(BXOR);
6855                                andExpression();
6856                                astFactory.addASTChild(currentAST, returnAST);
6857                        }
6858                        else {
6859                                break _loop306;
6860                        }
6861                        
6862                } while (true);
6863                }
6864                exclusiveOrExpression_AST = (AST)currentAST.root;
6865                returnAST = exclusiveOrExpression_AST;
6866        }
6867        
6868        public final void andExpression() throws RecognitionException, TokenStreamException {
6869                
6870                returnAST = null;
6871                ASTPair currentAST = new ASTPair();
6872                AST andExpression_AST = null;
6873                
6874                equalityExpression();
6875                astFactory.addASTChild(currentAST, returnAST);
6876                {
6877                _loop309:
6878                do {
6879                        if ((LA(1)==BAND)) {
6880                                AST tmp196_AST = null;
6881                                tmp196_AST = astFactory.create(LT(1));
6882                                astFactory.makeASTRoot(currentAST, tmp196_AST);
6883                                match(BAND);
6884                                equalityExpression();
6885                                astFactory.addASTChild(currentAST, returnAST);
6886                        }
6887                        else {
6888                                break _loop309;
6889                        }
6890                        
6891                } while (true);
6892                }
6893                andExpression_AST = (AST)currentAST.root;
6894                returnAST = andExpression_AST;
6895        }
6896        
6897        public final void equalityExpression() throws RecognitionException, TokenStreamException {
6898                
6899                returnAST = null;
6900                ASTPair currentAST = new ASTPair();
6901                AST equalityExpression_AST = null;
6902                
6903                relationalExpression();
6904                astFactory.addASTChild(currentAST, returnAST);
6905                {
6906                _loop313:
6907                do {
6908                        if ((LA(1)==NOT_EQUAL||LA(1)==EQUAL)) {
6909                                {
6910                                switch ( LA(1)) {
6911                                case NOT_EQUAL:
6912                                {
6913                                        AST tmp197_AST = null;
6914                                        tmp197_AST = astFactory.create(LT(1));
6915                                        astFactory.makeASTRoot(currentAST, tmp197_AST);
6916                                        match(NOT_EQUAL);
6917                                        break;
6918                                }
6919                                case EQUAL:
6920                                {
6921                                        AST tmp198_AST = null;
6922                                        tmp198_AST = astFactory.create(LT(1));
6923                                        astFactory.makeASTRoot(currentAST, tmp198_AST);
6924                                        match(EQUAL);
6925                                        break;
6926                                }
6927                                default:
6928                                {
6929                                        throw new NoViableAltException(LT(1), getFilename());
6930                                }
6931                                }
6932                                }
6933                                relationalExpression();
6934                                astFactory.addASTChild(currentAST, returnAST);
6935                        }
6936                        else {
6937                                break _loop313;
6938                        }
6939                        
6940                } while (true);
6941                }
6942                equalityExpression_AST = (AST)currentAST.root;
6943                returnAST = equalityExpression_AST;
6944        }
6945        
6946        public final void relationalExpression() throws RecognitionException, TokenStreamException {
6947                
6948                returnAST = null;
6949                ASTPair currentAST = new ASTPair();
6950                AST relationalExpression_AST = null;
6951                
6952                shiftExpression();
6953                astFactory.addASTChild(currentAST, returnAST);
6954                {
6955                if ((LA(1)==LITERAL_instanceof) && (_tokenSet_10.member(LA(2)))) {
6956                        AST tmp199_AST = null;
6957                        tmp199_AST = astFactory.create(LT(1));
6958                        astFactory.makeASTRoot(currentAST, tmp199_AST);
6959                        match(LITERAL_instanceof);
6960                        typeSpec(true);
6961                        astFactory.addASTChild(currentAST, returnAST);
6962                }
6963                else if ((_tokenSet_65.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
6964                }
6965                else {
6966                        throw new NoViableAltException(LT(1), getFilename());
6967                }
6968                
6969                }
6970                {
6971                {
6972                _loop319:
6973                do {
6974                        if (((LA(1) >= LT && LA(1) <= GE)) && (_tokenSet_14.member(LA(2)))) {
6975                                {
6976                                switch ( LA(1)) {
6977                                case LT:
6978                                {
6979                                        AST tmp200_AST = null;
6980                                        tmp200_AST = astFactory.create(LT(1));
6981                                        astFactory.makeASTRoot(currentAST, tmp200_AST);
6982                                        match(LT);
6983                                        break;
6984                                }
6985                                case GT:
6986                                {
6987                                        AST tmp201_AST = null;
6988                                        tmp201_AST = astFactory.create(LT(1));
6989                                        astFactory.makeASTRoot(currentAST, tmp201_AST);
6990                                        match(GT);
6991                                        break;
6992                                }
6993                                case LE:
6994                                {
6995                                        AST tmp202_AST = null;
6996                                        tmp202_AST = astFactory.create(LT(1));
6997                                        astFactory.makeASTRoot(currentAST, tmp202_AST);
6998                                        match(LE);
6999                                        break;
7000                                }
7001                                case GE:
7002                                {
7003                                        AST tmp203_AST = null;
7004                                        tmp203_AST = astFactory.create(LT(1));
7005                                        astFactory.makeASTRoot(currentAST, tmp203_AST);
7006                                        match(GE);
7007                                        break;
7008                                }
7009                                default:
7010                                {
7011                                        throw new NoViableAltException(LT(1), getFilename());
7012                                }
7013                                }
7014                                }
7015                                shiftExpression();
7016                                astFactory.addASTChild(currentAST, returnAST);
7017                        }
7018                        else {
7019                                break _loop319;
7020                        }
7021                        
7022                } while (true);
7023                }
7024                }
7025                relationalExpression_AST = (AST)currentAST.root;
7026                returnAST = relationalExpression_AST;
7027        }
7028        
7029        public final void shiftExpression() throws RecognitionException, TokenStreamException {
7030                
7031                returnAST = null;
7032                ASTPair currentAST = new ASTPair();
7033                AST shiftExpression_AST = null;
7034                
7035                additiveExpression();
7036                astFactory.addASTChild(currentAST, returnAST);
7037                {
7038                _loop323:
7039                do {
7040                        if (((LA(1) >= SL && LA(1) <= BSR)) && (_tokenSet_14.member(LA(2)))) {
7041                                {
7042                                switch ( LA(1)) {
7043                                case SL:
7044                                {
7045                                        AST tmp204_AST = null;
7046                                        tmp204_AST = astFactory.create(LT(1));
7047                                        astFactory.makeASTRoot(currentAST, tmp204_AST);
7048                                        match(SL);
7049                                        break;
7050                                }
7051                                case SR:
7052                                {
7053                                        AST tmp205_AST = null;
7054                                        tmp205_AST = astFactory.create(LT(1));
7055                                        astFactory.makeASTRoot(currentAST, tmp205_AST);
7056                                        match(SR);
7057                                        break;
7058                                }
7059                                case BSR:
7060                                {
7061                                        AST tmp206_AST = null;
7062                                        tmp206_AST = astFactory.create(LT(1));
7063                                        astFactory.makeASTRoot(currentAST, tmp206_AST);
7064                                        match(BSR);
7065                                        break;
7066                                }
7067                                default:
7068                                {
7069                                        throw new NoViableAltException(LT(1), getFilename());
7070                                }
7071                                }
7072                                }
7073                                additiveExpression();
7074                                astFactory.addASTChild(currentAST, returnAST);
7075                        }
7076                        else {
7077                                break _loop323;
7078                        }
7079                        
7080                } while (true);
7081                }
7082                shiftExpression_AST = (AST)currentAST.root;
7083                returnAST = shiftExpression_AST;
7084        }
7085        
7086        public final void additiveExpression() throws RecognitionException, TokenStreamException {
7087                
7088                returnAST = null;
7089                ASTPair currentAST = new ASTPair();
7090                AST additiveExpression_AST = null;
7091                
7092                multiplicativeExpression();
7093                astFactory.addASTChild(currentAST, returnAST);
7094                {
7095                _loop327:
7096                do {
7097                        if ((LA(1)==PLUS||LA(1)==MINUS) && (_tokenSet_14.member(LA(2)))) {
7098                                {
7099                                switch ( LA(1)) {
7100                                case PLUS:
7101                                {
7102                                        AST tmp207_AST = null;
7103                                        tmp207_AST = astFactory.create(LT(1));
7104                                        astFactory.makeASTRoot(currentAST, tmp207_AST);
7105                                        match(PLUS);
7106                                        break;
7107                                }
7108                                case MINUS:
7109                                {
7110                                        AST tmp208_AST = null;
7111                                        tmp208_AST = astFactory.create(LT(1));
7112                                        astFactory.makeASTRoot(currentAST, tmp208_AST);
7113                                        match(MINUS);
7114                                        break;
7115                                }
7116                                default:
7117                                {
7118                                        throw new NoViableAltException(LT(1), getFilename());
7119                                }
7120                                }
7121                                }
7122                                multiplicativeExpression();
7123                                astFactory.addASTChild(currentAST, returnAST);
7124                        }
7125                        else {
7126                                break _loop327;
7127                        }
7128                        
7129                } while (true);
7130                }
7131                additiveExpression_AST = (AST)currentAST.root;
7132                returnAST = additiveExpression_AST;
7133        }
7134        
7135        public final void multiplicativeExpression() throws RecognitionException, TokenStreamException {
7136                
7137                returnAST = null;
7138                ASTPair currentAST = new ASTPair();
7139                AST multiplicativeExpression_AST = null;
7140                
7141                unaryExpression();
7142                astFactory.addASTChild(currentAST, returnAST);
7143                {
7144                _loop331:
7145                do {
7146                        if ((_tokenSet_66.member(LA(1))) && (_tokenSet_14.member(LA(2)))) {
7147                                {
7148                                switch ( LA(1)) {
7149                                case STAR:
7150                                {
7151                                        AST tmp209_AST = null;
7152                                        tmp209_AST = astFactory.create(LT(1));
7153                                        astFactory.makeASTRoot(currentAST, tmp209_AST);
7154                                        match(STAR);
7155                                        break;
7156                                }
7157                                case DIV:
7158                                {
7159                                        AST tmp210_AST = null;
7160                                        tmp210_AST = astFactory.create(LT(1));
7161                                        astFactory.makeASTRoot(currentAST, tmp210_AST);
7162                                        match(DIV);
7163                                        break;
7164                                }
7165                                case MOD:
7166                                {
7167                                        AST tmp211_AST = null;
7168                                        tmp211_AST = astFactory.create(LT(1));
7169                                        astFactory.makeASTRoot(currentAST, tmp211_AST);
7170                                        match(MOD);
7171                                        break;
7172                                }
7173                                default:
7174                                {
7175                                        throw new NoViableAltException(LT(1), getFilename());
7176                                }
7177                                }
7178                                }
7179                                unaryExpression();
7180                                astFactory.addASTChild(currentAST, returnAST);
7181                        }
7182                        else {
7183                                break _loop331;
7184                        }
7185                        
7186                } while (true);
7187                }
7188                multiplicativeExpression_AST = (AST)currentAST.root;
7189                returnAST = multiplicativeExpression_AST;
7190        }
7191        
7192        public final void unaryExpression() throws RecognitionException, TokenStreamException {
7193                
7194                returnAST = null;
7195                ASTPair currentAST = new ASTPair();
7196                AST unaryExpression_AST = null;
7197                
7198                switch ( LA(1)) {
7199                case INC:
7200                {
7201                        AST tmp212_AST = null;
7202                        tmp212_AST = astFactory.create(LT(1));
7203                        astFactory.makeASTRoot(currentAST, tmp212_AST);
7204                        match(INC);
7205                        unaryExpression();
7206                        astFactory.addASTChild(currentAST, returnAST);
7207                        unaryExpression_AST = (AST)currentAST.root;
7208                        break;
7209                }
7210                case DEC:
7211                {
7212                        AST tmp213_AST = null;
7213                        tmp213_AST = astFactory.create(LT(1));
7214                        astFactory.makeASTRoot(currentAST, tmp213_AST);
7215                        match(DEC);
7216                        unaryExpression();
7217                        astFactory.addASTChild(currentAST, returnAST);
7218                        unaryExpression_AST = (AST)currentAST.root;
7219                        break;
7220                }
7221                case MINUS:
7222                {
7223                        AST tmp214_AST = null;
7224                        tmp214_AST = astFactory.create(LT(1));
7225                        astFactory.makeASTRoot(currentAST, tmp214_AST);
7226                        match(MINUS);
7227                        if ( inputState.guessing==0 ) {
7228                                tmp214_AST.setType(UNARY_MINUS);
7229                        }
7230                        unaryExpression();
7231                        astFactory.addASTChild(currentAST, returnAST);
7232                        unaryExpression_AST = (AST)currentAST.root;
7233                        break;
7234                }
7235                case PLUS:
7236                {
7237                        AST tmp215_AST = null;
7238                        tmp215_AST = astFactory.create(LT(1));
7239                        astFactory.makeASTRoot(currentAST, tmp215_AST);
7240                        match(PLUS);
7241                        if ( inputState.guessing==0 ) {
7242                                tmp215_AST.setType(UNARY_PLUS);
7243                        }
7244                        unaryExpression();
7245                        astFactory.addASTChild(currentAST, returnAST);
7246                        unaryExpression_AST = (AST)currentAST.root;
7247                        break;
7248                }
7249                case LITERAL_void:
7250                case LITERAL_boolean:
7251                case LITERAL_byte:
7252                case LITERAL_char:
7253                case LITERAL_short:
7254                case LITERAL_int:
7255                case LITERAL_float:
7256                case LITERAL_long:
7257                case LITERAL_double:
7258                case IDENT:
7259                case LPAREN:
7260                case LITERAL_this:
7261                case LITERAL_super:
7262                case BNOT:
7263                case LNOT:
7264                case LITERAL_true:
7265                case LITERAL_false:
7266                case LITERAL_null:
7267                case LITERAL_new:
7268                case NUM_INT:
7269                case CHAR_LITERAL:
7270                case STRING_LITERAL:
7271                case NUM_FLOAT:
7272                case NUM_LONG:
7273                case NUM_DOUBLE:
7274                case AT:
7275                {
7276                        unaryExpressionNotPlusMinus();
7277                        astFactory.addASTChild(currentAST, returnAST);
7278                        unaryExpression_AST = (AST)currentAST.root;
7279                        break;
7280                }
7281                default:
7282                {
7283                        throw new NoViableAltException(LT(1), getFilename());
7284                }
7285                }
7286                returnAST = unaryExpression_AST;
7287        }
7288        
7289        public final void unaryExpressionNotPlusMinus() throws RecognitionException, TokenStreamException {
7290                
7291                returnAST = null;
7292                ASTPair currentAST = new ASTPair();
7293                AST unaryExpressionNotPlusMinus_AST = null;
7294                Token  lpb = null;
7295                AST lpb_AST = null;
7296                Token  lp = null;
7297                AST lp_AST = null;
7298                Token  lpl = null;
7299                AST lpl_AST = null;
7300                
7301                switch ( LA(1)) {
7302                case BNOT:
7303                {
7304                        AST tmp216_AST = null;
7305                        tmp216_AST = astFactory.create(LT(1));
7306                        astFactory.makeASTRoot(currentAST, tmp216_AST);
7307                        match(BNOT);
7308                        unaryExpression();
7309                        astFactory.addASTChild(currentAST, returnAST);
7310                        unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
7311                        break;
7312                }
7313                case LNOT:
7314                {
7315                        AST tmp217_AST = null;
7316                        tmp217_AST = astFactory.create(LT(1));
7317                        astFactory.makeASTRoot(currentAST, tmp217_AST);
7318                        match(LNOT);
7319                        unaryExpression();
7320                        astFactory.addASTChild(currentAST, returnAST);
7321                        unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
7322                        break;
7323                }
7324                case LITERAL_void:
7325                case LITERAL_boolean:
7326                case LITERAL_byte:
7327                case LITERAL_char:
7328                case LITERAL_short:
7329                case LITERAL_int:
7330                case LITERAL_float:
7331                case LITERAL_long:
7332                case LITERAL_double:
7333                case IDENT:
7334                case LPAREN:
7335                case LITERAL_this:
7336                case LITERAL_super:
7337                case LITERAL_true:
7338                case LITERAL_false:
7339                case LITERAL_null:
7340                case LITERAL_new:
7341                case NUM_INT:
7342                case CHAR_LITERAL:
7343                case STRING_LITERAL:
7344                case NUM_FLOAT:
7345                case NUM_LONG:
7346                case NUM_DOUBLE:
7347                case AT:
7348                {
7349                        {
7350                        boolean synPredMatched336 = false;
7351                        if (((LA(1)==LPAREN) && ((LA(2) >= LITERAL_void && LA(2) <= LITERAL_double)))) {
7352                                int _m336 = mark();
7353                                synPredMatched336 = true;
7354                                inputState.guessing++;
7355                                try {
7356                                        {
7357                                        match(LPAREN);
7358                                        builtInTypeSpec(true);
7359                                        match(RPAREN);
7360                                        unaryExpression();
7361                                        }
7362                                }
7363                                catch (RecognitionException pe) {
7364                                        synPredMatched336 = false;
7365                                }
7366                                rewind(_m336);
7367inputState.guessing--;
7368                        }
7369                        if ( synPredMatched336 ) {
7370                                lpb = LT(1);
7371                                lpb_AST = astFactory.create(lpb);
7372                                astFactory.makeASTRoot(currentAST, lpb_AST);
7373                                match(LPAREN);
7374                                if ( inputState.guessing==0 ) {
7375                                        lpb_AST.setType(TYPECAST);
7376                                }
7377                                builtInTypeSpec(true);
7378                                astFactory.addASTChild(currentAST, returnAST);
7379                                AST tmp218_AST = null;
7380                                tmp218_AST = astFactory.create(LT(1));
7381                                astFactory.addASTChild(currentAST, tmp218_AST);
7382                                match(RPAREN);
7383                                unaryExpression();
7384                                astFactory.addASTChild(currentAST, returnAST);
7385                        }
7386                        else {
7387                                boolean synPredMatched338 = false;
7388                                if (((LA(1)==LPAREN) && (LA(2)==IDENT||LA(2)==AT))) {
7389                                        int _m338 = mark();
7390                                        synPredMatched338 = true;
7391                                        inputState.guessing++;
7392                                        try {
7393                                                {
7394                                                match(LPAREN);
7395                                                typeCastParameters();
7396                                                match(RPAREN);
7397                                                unaryExpressionNotPlusMinus();
7398                                                }
7399                                        }
7400                                        catch (RecognitionException pe) {
7401                                                synPredMatched338 = false;
7402                                        }
7403                                        rewind(_m338);
7404inputState.guessing--;
7405                                }
7406                                if ( synPredMatched338 ) {
7407                                        lp = LT(1);
7408                                        lp_AST = astFactory.create(lp);
7409                                        astFactory.makeASTRoot(currentAST, lp_AST);
7410                                        match(LPAREN);
7411                                        if ( inputState.guessing==0 ) {
7412                                                lp_AST.setType(TYPECAST);
7413                                        }
7414                                        typeCastParameters();
7415                                        astFactory.addASTChild(currentAST, returnAST);
7416                                        AST tmp219_AST = null;
7417                                        tmp219_AST = astFactory.create(LT(1));
7418                                        astFactory.addASTChild(currentAST, tmp219_AST);
7419                                        match(RPAREN);
7420                                        unaryExpressionNotPlusMinus();
7421                                        astFactory.addASTChild(currentAST, returnAST);
7422                                }
7423                                else {
7424                                        boolean synPredMatched340 = false;
7425                                        if (((LA(1)==LPAREN) && (LA(2)==IDENT||LA(2)==AT))) {
7426                                                int _m340 = mark();
7427                                                synPredMatched340 = true;
7428                                                inputState.guessing++;
7429                                                try {
7430                                                        {
7431                                                        match(LPAREN);
7432                                                        typeCastParameters();
7433                                                        match(RPAREN);
7434                                                        lambdaExpression();
7435                                                        }
7436                                                }
7437                                                catch (RecognitionException pe) {
7438                                                        synPredMatched340 = false;
7439                                                }
7440                                                rewind(_m340);
7441inputState.guessing--;
7442                                        }
7443                                        if ( synPredMatched340 ) {
7444                                                lpl = LT(1);
7445                                                lpl_AST = astFactory.create(lpl);
7446                                                astFactory.makeASTRoot(currentAST, lpl_AST);
7447                                                match(LPAREN);
7448                                                if ( inputState.guessing==0 ) {
7449                                                        lpl_AST.setType(TYPECAST);
7450                                                }
7451                                                typeCastParameters();
7452                                                astFactory.addASTChild(currentAST, returnAST);
7453                                                AST tmp220_AST = null;
7454                                                tmp220_AST = astFactory.create(LT(1));
7455                                                astFactory.addASTChild(currentAST, tmp220_AST);
7456                                                match(RPAREN);
7457                                                lambdaExpression();
7458                                                astFactory.addASTChild(currentAST, returnAST);
7459                                        }
7460                                        else if ((_tokenSet_46.member(LA(1))) && (_tokenSet_19.member(LA(2)))) {
7461                                                postfixExpression();
7462                                                astFactory.addASTChild(currentAST, returnAST);
7463                                        }
7464                                        else {
7465                                                throw new NoViableAltException(LT(1), getFilename());
7466                                        }
7467                                        }}
7468                                        }
7469                                        unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
7470                                        break;
7471                                }
7472                                default:
7473                                {
7474                                        throw new NoViableAltException(LT(1), getFilename());
7475                                }
7476                                }
7477                                returnAST = unaryExpressionNotPlusMinus_AST;
7478                        }
7479                        
7480        public final void typeCastParameters() throws RecognitionException, TokenStreamException {
7481                
7482                returnAST = null;
7483                ASTPair currentAST = new ASTPair();
7484                AST typeCastParameters_AST = null;
7485                Token  b = null;
7486                AST b_AST = null;
7487                
7488                classTypeSpec(true);
7489                astFactory.addASTChild(currentAST, returnAST);
7490                {
7491                _loop343:
7492                do {
7493                        if ((LA(1)==BAND)) {
7494                                b = LT(1);
7495                                b_AST = astFactory.create(b);
7496                                astFactory.addASTChild(currentAST, b_AST);
7497                                match(BAND);
7498                                if ( inputState.guessing==0 ) {
7499                                        b_AST.setType(TYPE_EXTENSION_AND);
7500                                }
7501                                classTypeSpec(true);
7502                                astFactory.addASTChild(currentAST, returnAST);
7503                        }
7504                        else {
7505                                break _loop343;
7506                        }
7507                        
7508                } while (true);
7509                }
7510                typeCastParameters_AST = (AST)currentAST.root;
7511                returnAST = typeCastParameters_AST;
7512        }
7513        
7514        public final void postfixExpression() throws RecognitionException, TokenStreamException {
7515                
7516                returnAST = null;
7517                ASTPair currentAST = new ASTPair();
7518                AST postfixExpression_AST = null;
7519                Token  dc = null;
7520                AST dc_AST = null;
7521                Token  lbc = null;
7522                AST lbc_AST = null;
7523                Token  lb = null;
7524                AST lb_AST = null;
7525                Token  lp = null;
7526                AST lp_AST = null;
7527                Token  in = null;
7528                AST in_AST = null;
7529                Token  de = null;
7530                AST de_AST = null;
7531                
7532                primaryExpression();
7533                astFactory.addASTChild(currentAST, returnAST);
7534                {
7535                _loop355:
7536                do {
7537                        switch ( LA(1)) {
7538                        case DOT:
7539                        {
7540                                AST tmp221_AST = null;
7541                                tmp221_AST = astFactory.create(LT(1));
7542                                astFactory.makeASTRoot(currentAST, tmp221_AST);
7543                                match(DOT);
7544                                {
7545                                switch ( LA(1)) {
7546                                case IDENT:
7547                                case LITERAL_this:
7548                                case LITERAL_super:
7549                                case LT:
7550                                {
7551                                        {
7552                                        switch ( LA(1)) {
7553                                        case LT:
7554                                        {
7555                                                typeArguments(false);
7556                                                astFactory.addASTChild(currentAST, returnAST);
7557                                                break;
7558                                        }
7559                                        case IDENT:
7560                                        case LITERAL_this:
7561                                        case LITERAL_super:
7562                                        {
7563                                                break;
7564                                        }
7565                                        default:
7566                                        {
7567                                                throw new NoViableAltException(LT(1), getFilename());
7568                                        }
7569                                        }
7570                                        }
7571                                        {
7572                                        switch ( LA(1)) {
7573                                        case IDENT:
7574                                        {
7575                                                AST tmp222_AST = null;
7576                                                tmp222_AST = astFactory.create(LT(1));
7577                                                astFactory.addASTChild(currentAST, tmp222_AST);
7578                                                match(IDENT);
7579                                                break;
7580                                        }
7581                                        case LITERAL_this:
7582                                        {
7583                                                AST tmp223_AST = null;
7584                                                tmp223_AST = astFactory.create(LT(1));
7585                                                astFactory.addASTChild(currentAST, tmp223_AST);
7586                                                match(LITERAL_this);
7587                                                break;
7588                                        }
7589                                        case LITERAL_super:
7590                                        {
7591                                                AST tmp224_AST = null;
7592                                                tmp224_AST = astFactory.create(LT(1));
7593                                                astFactory.addASTChild(currentAST, tmp224_AST);
7594                                                match(LITERAL_super);
7595                                                break;
7596                                        }
7597                                        default:
7598                                        {
7599                                                throw new NoViableAltException(LT(1), getFilename());
7600                                        }
7601                                        }
7602                                        }
7603                                        break;
7604                                }
7605                                case LITERAL_class:
7606                                {
7607                                        AST tmp225_AST = null;
7608                                        tmp225_AST = astFactory.create(LT(1));
7609                                        astFactory.addASTChild(currentAST, tmp225_AST);
7610                                        match(LITERAL_class);
7611                                        break;
7612                                }
7613                                case LITERAL_new:
7614                                {
7615                                        newExpression();
7616                                        astFactory.addASTChild(currentAST, returnAST);
7617                                        break;
7618                                }
7619                                default:
7620                                {
7621                                        throw new NoViableAltException(LT(1), getFilename());
7622                                }
7623                                }
7624                                }
7625                                break;
7626                        }
7627                        case DOUBLE_COLON:
7628                        {
7629                                dc = LT(1);
7630                                dc_AST = astFactory.create(dc);
7631                                astFactory.makeASTRoot(currentAST, dc_AST);
7632                                match(DOUBLE_COLON);
7633                                if ( inputState.guessing==0 ) {
7634                                        dc_AST.setType(METHOD_REF);
7635                                }
7636                                {
7637                                {
7638                                switch ( LA(1)) {
7639                                case LT:
7640                                {
7641                                        typeArguments(false);
7642                                        astFactory.addASTChild(currentAST, returnAST);
7643                                        break;
7644                                }
7645                                case IDENT:
7646                                case LITERAL_new:
7647                                {
7648                                        break;
7649                                }
7650                                default:
7651                                {
7652                                        throw new NoViableAltException(LT(1), getFilename());
7653                                }
7654                                }
7655                                }
7656                                {
7657                                switch ( LA(1)) {
7658                                case IDENT:
7659                                {
7660                                        AST tmp226_AST = null;
7661                                        tmp226_AST = astFactory.create(LT(1));
7662                                        astFactory.addASTChild(currentAST, tmp226_AST);
7663                                        match(IDENT);
7664                                        break;
7665                                }
7666                                case LITERAL_new:
7667                                {
7668                                        AST tmp227_AST = null;
7669                                        tmp227_AST = astFactory.create(LT(1));
7670                                        astFactory.addASTChild(currentAST, tmp227_AST);
7671                                        match(LITERAL_new);
7672                                        break;
7673                                }
7674                                default:
7675                                {
7676                                        throw new NoViableAltException(LT(1), getFilename());
7677                                }
7678                                }
7679                                }
7680                                }
7681                                break;
7682                        }
7683                        default:
7684                                if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
7685                                        {
7686                                        int _cnt353=0;
7687                                        _loop353:
7688                                        do {
7689                                                if ((LA(1)==LBRACK) && (LA(2)==RBRACK)) {
7690                                                        lbc = LT(1);
7691                                                        lbc_AST = astFactory.create(lbc);
7692                                                        astFactory.makeASTRoot(currentAST, lbc_AST);
7693                                                        match(LBRACK);
7694                                                        if ( inputState.guessing==0 ) {
7695                                                                lbc_AST.setType(ARRAY_DECLARATOR);
7696                                                        }
7697                                                        AST tmp228_AST = null;
7698                                                        tmp228_AST = astFactory.create(LT(1));
7699                                                        astFactory.addASTChild(currentAST, tmp228_AST);
7700                                                        match(RBRACK);
7701                                                }
7702                                                else {
7703                                                        if ( _cnt353>=1 ) { break _loop353; } else {throw new NoViableAltException(LT(1), getFilename());}
7704                                                }
7705                                                
7706                                                _cnt353++;
7707                                        } while (true);
7708                                        }
7709                                        {
7710                                        if ((LA(1)==DOT) && (LA(2)==LITERAL_class)) {
7711                                                AST tmp229_AST = null;
7712                                                tmp229_AST = astFactory.create(LT(1));
7713                                                astFactory.makeASTRoot(currentAST, tmp229_AST);
7714                                                match(DOT);
7715                                                AST tmp230_AST = null;
7716                                                tmp230_AST = astFactory.create(LT(1));
7717                                                astFactory.addASTChild(currentAST, tmp230_AST);
7718                                                match(LITERAL_class);
7719                                        }
7720                                        else if ((_tokenSet_19.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7721                                        }
7722                                        else {
7723                                                throw new NoViableAltException(LT(1), getFilename());
7724                                        }
7725                                        
7726                                        }
7727                                }
7728                                else if ((LA(1)==LBRACK) && (_tokenSet_14.member(LA(2)))) {
7729                                        lb = LT(1);
7730                                        lb_AST = astFactory.create(lb);
7731                                        astFactory.makeASTRoot(currentAST, lb_AST);
7732                                        match(LBRACK);
7733                                        if ( inputState.guessing==0 ) {
7734                                                lb_AST.setType(INDEX_OP);
7735                                        }
7736                                        expression();
7737                                        astFactory.addASTChild(currentAST, returnAST);
7738                                        AST tmp231_AST = null;
7739                                        tmp231_AST = astFactory.create(LT(1));
7740                                        astFactory.addASTChild(currentAST, tmp231_AST);
7741                                        match(RBRACK);
7742                                }
7743                                else if ((LA(1)==LPAREN) && (_tokenSet_67.member(LA(2)))) {
7744                                        lp = LT(1);
7745                                        lp_AST = astFactory.create(lp);
7746                                        astFactory.makeASTRoot(currentAST, lp_AST);
7747                                        match(LPAREN);
7748                                        if ( inputState.guessing==0 ) {
7749                                                lp_AST.setType(METHOD_CALL);
7750                                        }
7751                                        argList();
7752                                        astFactory.addASTChild(currentAST, returnAST);
7753                                        AST tmp232_AST = null;
7754                                        tmp232_AST = astFactory.create(LT(1));
7755                                        astFactory.addASTChild(currentAST, tmp232_AST);
7756                                        match(RPAREN);
7757                                }
7758                        else {
7759                                break _loop355;
7760                        }
7761                        }
7762                } while (true);
7763                }
7764                {
7765                if ((LA(1)==INC) && (_tokenSet_65.member(LA(2)))) {
7766                        in = LT(1);
7767                        in_AST = astFactory.create(in);
7768                        astFactory.makeASTRoot(currentAST, in_AST);
7769                        match(INC);
7770                        if ( inputState.guessing==0 ) {
7771                                in_AST.setType(POST_INC);
7772                        }
7773                }
7774                else if ((LA(1)==DEC) && (_tokenSet_65.member(LA(2)))) {
7775                        de = LT(1);
7776                        de_AST = astFactory.create(de);
7777                        astFactory.makeASTRoot(currentAST, de_AST);
7778                        match(DEC);
7779                        if ( inputState.guessing==0 ) {
7780                                de_AST.setType(POST_DEC);
7781                        }
7782                }
7783                else if ((_tokenSet_65.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7784                }
7785                else {
7786                        throw new NoViableAltException(LT(1), getFilename());
7787                }
7788                
7789                }
7790                postfixExpression_AST = (AST)currentAST.root;
7791                returnAST = postfixExpression_AST;
7792        }
7793        
7794/** object instantiation.
7795 *  Trees are built as illustrated by the following input/tree pairs:
7796 *
7797 *  new T()
7798 *
7799 *  new
7800 *   |
7801 *   T --  ELIST
7802 *           |
7803 *          arg1 -- arg2 -- .. -- argn
7804 *
7805 *  new int[]
7806 *
7807 *  new
7808 *   |
7809 *  int -- ARRAY_DECLARATOR
7810 *
7811 *  new int[] {1,2}
7812 *
7813 *  new
7814 *   |
7815 *  int -- ARRAY_DECLARATOR -- ARRAY_INIT
7816 *                                  |
7817 *                                EXPR -- EXPR
7818 *                                  |      |
7819 *                                  1      2
7820 *
7821 *  new int[3]
7822 *  new
7823 *   |
7824 *  int -- ARRAY_DECLARATOR
7825 *                |
7826 *              EXPR
7827 *                |
7828 *                3
7829 *
7830 *  new int[1][2]
7831 *
7832 *  new
7833 *   |
7834 *  int -- ARRAY_DECLARATOR
7835 *               |
7836 *         ARRAY_DECLARATOR -- EXPR
7837 *               |              |
7838 *             EXPR             1
7839 *               |
7840 *               2
7841 *
7842 *
7843 * @throws RecognitionException if recognition problem occurs.
7844 * @throws TokenStreamException if problem occurs while generating a stream of tokens.
7845 */
7846        public final void newExpression() throws RecognitionException, TokenStreamException {
7847                
7848                returnAST = null;
7849                ASTPair currentAST = new ASTPair();
7850                AST newExpression_AST = null;
7851                
7852                AST tmp233_AST = null;
7853                tmp233_AST = astFactory.create(LT(1));
7854                astFactory.makeASTRoot(currentAST, tmp233_AST);
7855                match(LITERAL_new);
7856                {
7857                switch ( LA(1)) {
7858                case LT:
7859                {
7860                        typeArguments(false);
7861                        astFactory.addASTChild(currentAST, returnAST);
7862                        break;
7863                }
7864                case LITERAL_void:
7865                case LITERAL_boolean:
7866                case LITERAL_byte:
7867                case LITERAL_char:
7868                case LITERAL_short:
7869                case LITERAL_int:
7870                case LITERAL_float:
7871                case LITERAL_long:
7872                case LITERAL_double:
7873                case IDENT:
7874                case AT:
7875                {
7876                        break;
7877                }
7878                default:
7879                {
7880                        throw new NoViableAltException(LT(1), getFilename());
7881                }
7882                }
7883                }
7884                type();
7885                astFactory.addASTChild(currentAST, returnAST);
7886                {
7887                switch ( LA(1)) {
7888                case LPAREN:
7889                {
7890                        AST tmp234_AST = null;
7891                        tmp234_AST = astFactory.create(LT(1));
7892                        astFactory.addASTChild(currentAST, tmp234_AST);
7893                        match(LPAREN);
7894                        argList();
7895                        astFactory.addASTChild(currentAST, returnAST);
7896                        AST tmp235_AST = null;
7897                        tmp235_AST = astFactory.create(LT(1));
7898                        astFactory.addASTChild(currentAST, tmp235_AST);
7899                        match(RPAREN);
7900                        {
7901                        if ((LA(1)==LCURLY) && (_tokenSet_31.member(LA(2)))) {
7902                                classBlock();
7903                                astFactory.addASTChild(currentAST, returnAST);
7904                        }
7905                        else if ((_tokenSet_19.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7906                        }
7907                        else {
7908                                throw new NoViableAltException(LT(1), getFilename());
7909                        }
7910                        
7911                        }
7912                        break;
7913                }
7914                case LBRACK:
7915                case AT:
7916                {
7917                        newArrayDeclarator();
7918                        astFactory.addASTChild(currentAST, returnAST);
7919                        {
7920                        if ((LA(1)==LCURLY) && (_tokenSet_68.member(LA(2)))) {
7921                                arrayInitializer();
7922                                astFactory.addASTChild(currentAST, returnAST);
7923                        }
7924                        else if ((_tokenSet_19.member(LA(1))) && (_tokenSet_49.member(LA(2)))) {
7925                        }
7926                        else {
7927                                throw new NoViableAltException(LT(1), getFilename());
7928                        }
7929                        
7930                        }
7931                        break;
7932                }
7933                default:
7934                {
7935                        throw new NoViableAltException(LT(1), getFilename());
7936                }
7937                }
7938                }
7939                newExpression_AST = (AST)currentAST.root;
7940                returnAST = newExpression_AST;
7941        }
7942        
7943        public final void constant() throws RecognitionException, TokenStreamException {
7944                
7945                returnAST = null;
7946                ASTPair currentAST = new ASTPair();
7947                AST constant_AST = null;
7948                
7949                switch ( LA(1)) {
7950                case NUM_INT:
7951                {
7952                        AST tmp236_AST = null;
7953                        tmp236_AST = astFactory.create(LT(1));
7954                        astFactory.addASTChild(currentAST, tmp236_AST);
7955                        match(NUM_INT);
7956                        constant_AST = (AST)currentAST.root;
7957                        break;
7958                }
7959                case NUM_LONG:
7960                {
7961                        AST tmp237_AST = null;
7962                        tmp237_AST = astFactory.create(LT(1));
7963                        astFactory.addASTChild(currentAST, tmp237_AST);
7964                        match(NUM_LONG);
7965                        constant_AST = (AST)currentAST.root;
7966                        break;
7967                }
7968                case NUM_FLOAT:
7969                {
7970                        AST tmp238_AST = null;
7971                        tmp238_AST = astFactory.create(LT(1));
7972                        astFactory.addASTChild(currentAST, tmp238_AST);
7973                        match(NUM_FLOAT);
7974                        constant_AST = (AST)currentAST.root;
7975                        break;
7976                }
7977                case NUM_DOUBLE:
7978                {
7979                        AST tmp239_AST = null;
7980                        tmp239_AST = astFactory.create(LT(1));
7981                        astFactory.addASTChild(currentAST, tmp239_AST);
7982                        match(NUM_DOUBLE);
7983                        constant_AST = (AST)currentAST.root;
7984                        break;
7985                }
7986                case CHAR_LITERAL:
7987                {
7988                        AST tmp240_AST = null;
7989                        tmp240_AST = astFactory.create(LT(1));
7990                        astFactory.addASTChild(currentAST, tmp240_AST);
7991                        match(CHAR_LITERAL);
7992                        constant_AST = (AST)currentAST.root;
7993                        break;
7994                }
7995                case STRING_LITERAL:
7996                {
7997                        AST tmp241_AST = null;
7998                        tmp241_AST = astFactory.create(LT(1));
7999                        astFactory.addASTChild(currentAST, tmp241_AST);
8000                        match(STRING_LITERAL);
8001                        constant_AST = (AST)currentAST.root;
8002                        break;
8003                }
8004                default:
8005                {
8006                        throw new NoViableAltException(LT(1), getFilename());
8007                }
8008                }
8009                returnAST = constant_AST;
8010        }
8011        
8012        public final void newArrayDeclarator() throws RecognitionException, TokenStreamException {
8013                
8014                returnAST = null;
8015                ASTPair currentAST = new ASTPair();
8016                AST newArrayDeclarator_AST = null;
8017                Token  lb = null;
8018                AST lb_AST = null;
8019                
8020                {
8021                int _cnt377=0;
8022                _loop377:
8023                do {
8024                        if ((LA(1)==LBRACK||LA(1)==AT) && (_tokenSet_69.member(LA(2)))) {
8025                                {
8026                                if (((LA(1)==LBRACK||LA(1)==AT) && (_tokenSet_69.member(LA(2))))&&(LA(1) == AT)) {
8027                                        annotations();
8028                                        astFactory.addASTChild(currentAST, returnAST);
8029                                }
8030                                else if ((LA(1)==LBRACK) && (_tokenSet_69.member(LA(2)))) {
8031                                }
8032                                else {
8033                                        throw new NoViableAltException(LT(1), getFilename());
8034                                }
8035                                
8036                                }
8037                                lb = LT(1);
8038                                lb_AST = astFactory.create(lb);
8039                                astFactory.makeASTRoot(currentAST, lb_AST);
8040                                match(LBRACK);
8041                                if ( inputState.guessing==0 ) {
8042                                        lb_AST.setType(ARRAY_DECLARATOR);
8043                                }
8044                                {
8045                                switch ( LA(1)) {
8046                                case LITERAL_void:
8047                                case LITERAL_boolean:
8048                                case LITERAL_byte:
8049                                case LITERAL_char:
8050                                case LITERAL_short:
8051                                case LITERAL_int:
8052                                case LITERAL_float:
8053                                case LITERAL_long:
8054                                case LITERAL_double:
8055                                case IDENT:
8056                                case LPAREN:
8057                                case LITERAL_this:
8058                                case LITERAL_super:
8059                                case PLUS:
8060                                case MINUS:
8061                                case INC:
8062                                case DEC:
8063                                case BNOT:
8064                                case LNOT:
8065                                case LITERAL_true:
8066                                case LITERAL_false:
8067                                case LITERAL_null:
8068                                case LITERAL_new:
8069                                case NUM_INT:
8070                                case CHAR_LITERAL:
8071                                case STRING_LITERAL:
8072                                case NUM_FLOAT:
8073                                case NUM_LONG:
8074                                case NUM_DOUBLE:
8075                                case AT:
8076                                {
8077                                        expression();
8078                                        astFactory.addASTChild(currentAST, returnAST);
8079                                        break;
8080                                }
8081                                case RBRACK:
8082                                {
8083                                        break;
8084                                }
8085                                default:
8086                                {
8087                                        throw new NoViableAltException(LT(1), getFilename());
8088                                }
8089                                }
8090                                }
8091                                AST tmp242_AST = null;
8092                                tmp242_AST = astFactory.create(LT(1));
8093                                astFactory.addASTChild(currentAST, tmp242_AST);
8094                                match(RBRACK);
8095                        }
8096                        else {
8097                                if ( _cnt377>=1 ) { break _loop377; } else {throw new NoViableAltException(LT(1), getFilename());}
8098                        }
8099                        
8100                        _cnt377++;
8101                } while (true);
8102                }
8103                newArrayDeclarator_AST = (AST)currentAST.root;
8104                returnAST = newArrayDeclarator_AST;
8105        }
8106        
8107        public final void lambdaParameters() throws RecognitionException, TokenStreamException {
8108                
8109                returnAST = null;
8110                ASTPair currentAST = new ASTPair();
8111                AST lambdaParameters_AST = null;
8112                
8113                switch ( LA(1)) {
8114                case IDENT:
8115                {
8116                        AST tmp243_AST = null;
8117                        tmp243_AST = astFactory.create(LT(1));
8118                        astFactory.addASTChild(currentAST, tmp243_AST);
8119                        match(IDENT);
8120                        lambdaParameters_AST = (AST)currentAST.root;
8121                        break;
8122                }
8123                case LPAREN:
8124                {
8125                        AST tmp244_AST = null;
8126                        tmp244_AST = astFactory.create(LT(1));
8127                        astFactory.addASTChild(currentAST, tmp244_AST);
8128                        match(LPAREN);
8129                        {
8130                        if ((_tokenSet_70.member(LA(1))) && (_tokenSet_71.member(LA(2)))) {
8131                                parameterDeclarationList();
8132                                astFactory.addASTChild(currentAST, returnAST);
8133                        }
8134                        else if ((LA(1)==RPAREN) && (LA(2)==LAMBDA)) {
8135                        }
8136                        else {
8137                                throw new NoViableAltException(LT(1), getFilename());
8138                        }
8139                        
8140                        }
8141                        AST tmp245_AST = null;
8142                        tmp245_AST = astFactory.create(LT(1));
8143                        astFactory.addASTChild(currentAST, tmp245_AST);
8144                        match(RPAREN);
8145                        lambdaParameters_AST = (AST)currentAST.root;
8146                        break;
8147                }
8148                default:
8149                {
8150                        throw new NoViableAltException(LT(1), getFilename());
8151                }
8152                }
8153                returnAST = lambdaParameters_AST;
8154        }
8155        
8156        public final void lambdaBody() throws RecognitionException, TokenStreamException {
8157                
8158                returnAST = null;
8159                ASTPair currentAST = new ASTPair();
8160                AST lambdaBody_AST = null;
8161                
8162                {
8163                if ((_tokenSet_14.member(LA(1))) && (_tokenSet_72.member(LA(2)))) {
8164                        expression();
8165                        astFactory.addASTChild(currentAST, returnAST);
8166                }
8167                else if ((_tokenSet_39.member(LA(1))) && (_tokenSet_72.member(LA(2)))) {
8168                        statement();
8169                        astFactory.addASTChild(currentAST, returnAST);
8170                }
8171                else {
8172                        throw new NoViableAltException(LT(1), getFilename());
8173                }
8174                
8175                }
8176                lambdaBody_AST = (AST)currentAST.root;
8177                returnAST = lambdaBody_AST;
8178        }
8179        
8180        
8181        public static final String[] _tokenNames = {
8182                "<0>",
8183                "EOF",
8184                "<2>",
8185                "NULL_TREE_LOOKAHEAD",
8186                "BLOCK",
8187                "MODIFIERS",
8188                "OBJBLOCK",
8189                "SLIST",
8190                "CTOR_DEF",
8191                "METHOD_DEF",
8192                "VARIABLE_DEF",
8193                "INSTANCE_INIT",
8194                "STATIC_INIT",
8195                "TYPE",
8196                "CLASS_DEF",
8197                "INTERFACE_DEF",
8198                "PACKAGE_DEF",
8199                "ARRAY_DECLARATOR",
8200                "EXTENDS_CLAUSE",
8201                "IMPLEMENTS_CLAUSE",
8202                "PARAMETERS",
8203                "PARAMETER_DEF",
8204                "LABELED_STAT",
8205                "TYPECAST",
8206                "INDEX_OP",
8207                "POST_INC",
8208                "POST_DEC",
8209                "METHOD_CALL",
8210                "EXPR",
8211                "ARRAY_INIT",
8212                "IMPORT",
8213                "UNARY_MINUS",
8214                "UNARY_PLUS",
8215                "CASE_GROUP",
8216                "ELIST",
8217                "FOR_INIT",
8218                "FOR_CONDITION",
8219                "FOR_ITERATOR",
8220                "EMPTY_STAT",
8221                "\"final\"",
8222                "\"abstract\"",
8223                "\"strictfp\"",
8224                "SUPER_CTOR_CALL",
8225                "CTOR_CALL",
8226                "\"package\"",
8227                "SEMI",
8228                "\"import\"",
8229                "LBRACK",
8230                "RBRACK",
8231                "\"void\"",
8232                "\"boolean\"",
8233                "\"byte\"",
8234                "\"char\"",
8235                "\"short\"",
8236                "\"int\"",
8237                "\"float\"",
8238                "\"long\"",
8239                "\"double\"",
8240                "IDENT",
8241                "DOT",
8242                "STAR",
8243                "\"private\"",
8244                "\"public\"",
8245                "\"protected\"",
8246                "\"static\"",
8247                "\"transient\"",
8248                "\"native\"",
8249                "\"synchronized\"",
8250                "\"volatile\"",
8251                "\"class\"",
8252                "\"extends\"",
8253                "\"interface\"",
8254                "LCURLY",
8255                "RCURLY",
8256                "COMMA",
8257                "\"implements\"",
8258                "LPAREN",
8259                "RPAREN",
8260                "\"this\"",
8261                "\"super\"",
8262                "ASSIGN",
8263                "\"throws\"",
8264                "COLON",
8265                "\"if\"",
8266                "\"while\"",
8267                "\"do\"",
8268                "\"break\"",
8269                "\"continue\"",
8270                "\"return\"",
8271                "\"switch\"",
8272                "\"throw\"",
8273                "\"for\"",
8274                "\"else\"",
8275                "\"case\"",
8276                "\"default\"",
8277                "\"try\"",
8278                "\"catch\"",
8279                "\"finally\"",
8280                "PLUS_ASSIGN",
8281                "MINUS_ASSIGN",
8282                "STAR_ASSIGN",
8283                "DIV_ASSIGN",
8284                "MOD_ASSIGN",
8285                "SR_ASSIGN",
8286                "BSR_ASSIGN",
8287                "SL_ASSIGN",
8288                "BAND_ASSIGN",
8289                "BXOR_ASSIGN",
8290                "BOR_ASSIGN",
8291                "QUESTION",
8292                "LOR",
8293                "LAND",
8294                "BOR",
8295                "BXOR",
8296                "BAND",
8297                "NOT_EQUAL",
8298                "EQUAL",
8299                "LT",
8300                "GT",
8301                "LE",
8302                "GE",
8303                "\"instanceof\"",
8304                "SL",
8305                "SR",
8306                "BSR",
8307                "PLUS",
8308                "MINUS",
8309                "DIV",
8310                "MOD",
8311                "INC",
8312                "DEC",
8313                "BNOT",
8314                "LNOT",
8315                "\"true\"",
8316                "\"false\"",
8317                "\"null\"",
8318                "\"new\"",
8319                "NUM_INT",
8320                "CHAR_LITERAL",
8321                "STRING_LITERAL",
8322                "NUM_FLOAT",
8323                "NUM_LONG",
8324                "NUM_DOUBLE",
8325                "WS",
8326                "SINGLE_LINE_COMMENT",
8327                "BLOCK_COMMENT_BEGIN",
8328                "ESC",
8329                "HEX_DIGIT",
8330                "VOCAB",
8331                "EXPONENT",
8332                "FLOAT_SUFFIX",
8333                "ASSERT",
8334                "STATIC_IMPORT",
8335                "ENUM",
8336                "ENUM_DEF",
8337                "ENUM_CONSTANT_DEF",
8338                "FOR_EACH_CLAUSE",
8339                "ANNOTATION_DEF",
8340                "ANNOTATIONS",
8341                "ANNOTATION",
8342                "ANNOTATION_MEMBER_VALUE_PAIR",
8343                "ANNOTATION_FIELD_DEF",
8344                "ANNOTATION_ARRAY_INIT",
8345                "TYPE_ARGUMENTS",
8346                "TYPE_ARGUMENT",
8347                "TYPE_PARAMETERS",
8348                "TYPE_PARAMETER",
8349                "WILDCARD_TYPE",
8350                "TYPE_UPPER_BOUNDS",
8351                "TYPE_LOWER_BOUNDS",
8352                "AT",
8353                "ELLIPSIS",
8354                "GENERIC_START",
8355                "GENERIC_END",
8356                "TYPE_EXTENSION_AND",
8357                "DO_WHILE",
8358                "RESOURCE_SPECIFICATION",
8359                "RESOURCES",
8360                "RESOURCE",
8361                "DOUBLE_COLON",
8362                "METHOD_REF",
8363                "LAMBDA",
8364                "BLOCK_COMMENT_END",
8365                "COMMENT_CONTENT",
8366                "SINGLE_LINE_COMMENT_CONTENT",
8367                "BLOCK_COMMENT_CONTENT",
8368                "STD_ESC",
8369                "BINARY_DIGIT",
8370                "ID_START",
8371                "ID_PART",
8372                "INT_LITERAL",
8373                "LONG_LITERAL",
8374                "FLOAT_LITERAL",
8375                "DOUBLE_LITERAL",
8376                "HEX_FLOAT_LITERAL",
8377                "HEX_DOUBLE_LITERAL",
8378                "SIGNED_INTEGER",
8379                "BINARY_EXPONENT"
8380        };
8381        
8382        protected void buildTokenTypeASTClassMap() {
8383                tokenTypeToASTClassMap=null;
8384        };
8385        
8386        private static final long[] mk_tokenSet_0() {
8387                long[] data = { -2305733607806730238L, 1073742015L, 4398080065536L, 0L, 0L, 0L};
8388                return data;
8389        }
8390        public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
8391        private static final long[] mk_tokenSet_1() {
8392                long[] data = { -2017503231655018494L, 1073742015L, 4398080065536L, 0L, 0L, 0L};
8393                return data;
8394        }
8395        public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
8396        private static final long[] mk_tokenSet_2() {
8397                long[] data = { -2305803976550907904L, 1073742015L, 4398080065536L, 0L, 0L, 0L};
8398                return data;
8399        }
8400        public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
8401        private static final long[] mk_tokenSet_3() {
8402                long[] data = { -2305803976550907902L, 1073742015L, 4398080065536L, 0L, 0L, 0L};
8403                return data;
8404        }
8405        public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());
8406        private static final long[] mk_tokenSet_4() {
8407                long[] data = { -2305839160922996736L, 1073741855L, 0L, 0L};
8408                return data;
8409        }
8410        public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4());
8411        private static final long[] mk_tokenSet_5() {
8412                long[] data = { 140737488355328L, 0L, 13194139533312L, 0L, 0L, 0L};
8413                return data;
8414        }
8415        public static final BitSet _tokenSet_5 = new BitSet(mk_tokenSet_5());
8416        private static final long[] mk_tokenSet_6() {
8417                long[] data = { -101704825569280L, -12885032961L, 2264993995194367L, 0L, 0L, 0L};
8418                return data;
8419        }
8420        public static final BitSet _tokenSet_6 = new BitSet(mk_tokenSet_6());
8421        private static final long[] mk_tokenSet_7() {
8422                long[] data = { -84112639524862L, -131073L, 11272193249935359L, 0L, 0L, 0L};
8423                return data;
8424        }
8425        public static final BitSet _tokenSet_7 = new BitSet(mk_tokenSet_7());
8426        private static final long[] mk_tokenSet_8() {
8427                long[] data = { 575897802350002176L, 35184372088832L, 4398046511104L, 0L, 0L, 0L};
8428                return data;
8429        }
8430        public static final BitSet _tokenSet_8 = new BitSet(mk_tokenSet_8());
8431        private static final long[] mk_tokenSet_9() {
8432                long[] data = { 0L, 1747396655419752448L, 0L, 0L};
8433                return data;
8434        }
8435        public static final BitSet _tokenSet_9 = new BitSet(mk_tokenSet_9());
8436        private static final long[] mk_tokenSet_10() {
8437                long[] data = { 575897802350002176L, 0L, 4398046511104L, 0L, 0L, 0L};
8438                return data;
8439        }
8440        public static final BitSet _tokenSet_10 = new BitSet(mk_tokenSet_10());
8441        private static final long[] mk_tokenSet_11() {
8442                long[] data = { 864831865943490560L, 9007199254745088L, 4398046511104L, 0L, 0L, 0L};
8443                return data;
8444        }
8445        public static final BitSet _tokenSet_11 = new BitSet(mk_tokenSet_11());
8446        private static final long[] mk_tokenSet_12() {
8447                long[] data = { 575897802350002176L, 6917529027641135360L, 4398046543870L, 0L, 0L, 0L};
8448                return data;
8449        }
8450        public static final BitSet _tokenSet_12 = new BitSet(mk_tokenSet_12());
8451        private static final long[] mk_tokenSet_13() {
8452                long[] data = { 2305420796748627968L, -35184372026880L, 2256197860229119L, 0L, 0L, 0L};
8453                return data;
8454        }
8455        public static final BitSet _tokenSet_13 = new BitSet(mk_tokenSet_13());
8456        private static final long[] mk_tokenSet_14() {
8457                long[] data = { 575897802350002176L, 6917529027641135104L, 4398046543870L, 0L, 0L, 0L};
8458                return data;
8459        }
8460        public static final BitSet _tokenSet_14 = new BitSet(mk_tokenSet_14());
8461        private static final long[] mk_tokenSet_15() {
8462                long[] data = { 2305455981120716800L, -35184372026368L, 2256197860229119L, 0L, 0L, 0L};
8463                return data;
8464        }
8465        public static final BitSet _tokenSet_15 = new BitSet(mk_tokenSet_15());
8466        private static final long[] mk_tokenSet_16() {
8467                long[] data = { 2305420796748627968L, -35184372034048L, 2256197860229119L, 0L, 0L, 0L};
8468                return data;
8469        }
8470        public static final BitSet _tokenSet_16 = new BitSet(mk_tokenSet_16());
8471        private static final long[] mk_tokenSet_17() {
8472                long[] data = { 575898352105816064L, 24576L, 9011597301252096L, 0L, 0L, 0L};
8473                return data;
8474        }
8475        public static final BitSet _tokenSet_17 = new BitSet(mk_tokenSet_17());
8476        private static final long[] mk_tokenSet_18() {
8477                long[] data = { 2305420796748627968L, -17179488256L, 2256197860229119L, 0L, 0L, 0L};
8478                return data;
8479        }
8480        public static final BitSet _tokenSet_18 = new BitSet(mk_tokenSet_18());
8481        private static final long[] mk_tokenSet_19() {
8482                long[] data = { -101704825569280L, -12885035073L, 2256197902172159L, 0L, 0L, 0L};
8483                return data;
8484        }
8485        public static final BitSet _tokenSet_19 = new BitSet(mk_tokenSet_19());
8486        private static final long[] mk_tokenSet_20() {
8487                long[] data = { 575897802350002176L, 1747396655419755840L, 4398046511104L, 0L, 0L, 0L};
8488                return data;
8489        }
8490        public static final BitSet _tokenSet_20 = new BitSet(mk_tokenSet_20());
8491        private static final long[] mk_tokenSet_21() {
8492                long[] data = { -1153304684409126912L, 9007200328489983L, 4398080065536L, 0L, 0L, 0L};
8493                return data;
8494        }
8495        public static final BitSet _tokenSet_21 = new BitSet(mk_tokenSet_21());
8496        private static final long[] mk_tokenSet_22() {
8497                long[] data = { 0L, 160L, 4398080065536L, 0L, 0L, 0L};
8498                return data;
8499        }
8500        public static final BitSet _tokenSet_22 = new BitSet(mk_tokenSet_22());
8501        private static final long[] mk_tokenSet_23() {
8502                long[] data = { 864831865943490560L, 9007199254740992L, 4398046511104L, 0L, 0L, 0L};
8503                return data;
8504        }
8505        public static final BitSet _tokenSet_23 = new BitSet(mk_tokenSet_23());
8506        private static final long[] mk_tokenSet_24() {
8507                long[] data = { 175921860444160L, 66560L, 4398046511104L, 0L, 0L, 0L};
8508                return data;
8509        }
8510        public static final BitSet _tokenSet_24 = new BitSet(mk_tokenSet_24());
8511        private static final long[] mk_tokenSet_25() {
8512                long[] data = { -1729906174200905728L, 9007200328951743L, 4398080065536L, 0L, 0L, 0L};
8513                return data;
8514        }
8515        public static final BitSet _tokenSet_25 = new BitSet(mk_tokenSet_25());
8516        private static final long[] mk_tokenSet_26() {
8517                long[] data = { -101704825569278L, -12884904001L, 11263397156913151L, 0L, 0L, 0L};
8518                return data;
8519        }
8520        public static final BitSet _tokenSet_26 = new BitSet(mk_tokenSet_26());
8521        private static final long[] mk_tokenSet_27() {
8522                long[] data = { -1729941358572994560L, 9007200328483007L, 4398080065536L, 0L, 0L, 0L};
8523                return data;
8524        }
8525        public static final BitSet _tokenSet_27 = new BitSet(mk_tokenSet_27());
8526        private static final long[] mk_tokenSet_28() {
8527                long[] data = { -1153339868781215744L, 9007200328487103L, 4398080065536L, 0L, 0L, 0L};
8528                return data;
8529        }
8530        public static final BitSet _tokenSet_28 = new BitSet(mk_tokenSet_28());
8531        private static final long[] mk_tokenSet_29() {
8532                long[] data = { 575897802350002176L, 9007199254740992L, 4398046511104L, 0L, 0L, 0L};
8533                return data;
8534        }
8535        public static final BitSet _tokenSet_29 = new BitSet(mk_tokenSet_29());
8536        private static final long[] mk_tokenSet_30() {
8537                long[] data = { -1729765436712550400L, 9007200328550335L, 4398080065536L, 0L, 0L, 0L};
8538                return data;
8539        }
8540        public static final BitSet _tokenSet_30 = new BitSet(mk_tokenSet_30());
8541        private static final long[] mk_tokenSet_31() {
8542                long[] data = { -1729906174200905728L, 9007200328483775L, 4398080065536L, 0L, 0L, 0L};
8543                return data;
8544        }
8545        public static final BitSet _tokenSet_31 = new BitSet(mk_tokenSet_31());
8546        private static final long[] mk_tokenSet_32() {
8547                long[] data = { -101704825569278L, -12885035073L, 2256197902172159L, 0L, 0L, 0L};
8548                return data;
8549        }
8550        public static final BitSet _tokenSet_32 = new BitSet(mk_tokenSet_32());
8551        private static final long[] mk_tokenSet_33() {
8552                long[] data = { 575898352105816064L, 16384L, 4398046511104L, 0L, 0L, 0L};
8553                return data;
8554        }
8555        public static final BitSet _tokenSet_33 = new BitSet(mk_tokenSet_33());
8556        private static final long[] mk_tokenSet_34() {
8557                long[] data = { 1152499292141780992L, 9007199254766592L, 4398046511104L, 0L, 0L, 0L};
8558                return data;
8559        }
8560        public static final BitSet _tokenSet_34 = new BitSet(mk_tokenSet_34());
8561        private static final long[] mk_tokenSet_35() {
8562                long[] data = { 575898352105816064L, 0L, 4398046511104L, 0L, 0L, 0L};
8563                return data;
8564        }
8565        public static final BitSet _tokenSet_35 = new BitSet(mk_tokenSet_35());
8566        private static final long[] mk_tokenSet_36() {
8567                long[] data = { 1152499292141780992L, 9007199254740992L, 13194139533312L, 0L, 0L, 0L};
8568                return data;
8569        }
8570        public static final BitSet _tokenSet_36 = new BitSet(mk_tokenSet_36());
8571        private static final long[] mk_tokenSet_37() {
8572                long[] data = { 864726312827224064L, 1280L, 0L, 0L};
8573                return data;
8574        }
8575        public static final BitSet _tokenSet_37 = new BitSet(mk_tokenSet_37());
8576        private static final long[] mk_tokenSet_38() {
8577                long[] data = { 576495936675512320L, 1280L, 0L, 0L};
8578                return data;
8579        }
8580        public static final BitSet _tokenSet_38 = new BitSet(mk_tokenSet_38());
8581        private static final long[] mk_tokenSet_39() {
8582                long[] data = { -1729906174200905728L, 6917529031130272063L, 4398054932478L, 0L, 0L, 0L};
8583                return data;
8584        }
8585        public static final BitSet _tokenSet_39 = new BitSet(mk_tokenSet_39());
8586        private static final long[] mk_tokenSet_40() {
8587                long[] data = { 575897802350002176L, 9007199254794240L, 4398046543840L, 0L, 0L, 0L};
8588                return data;
8589        }
8590        public static final BitSet _tokenSet_40 = new BitSet(mk_tokenSet_40());
8591        private static final long[] mk_tokenSet_41() {
8592                long[] data = { 1152499292141780992L, 8673968066687717376L, 4398046543870L, 0L, 0L, 0L};
8593                return data;
8594        }
8595        public static final BitSet _tokenSet_41 = new BitSet(mk_tokenSet_41());
8596        private static final long[] mk_tokenSet_42() {
8597                long[] data = { -1729906174200905728L, 6917529031130272575L, 4398054932478L, 0L, 0L, 0L};
8598                return data;
8599        }
8600        public static final BitSet _tokenSet_42 = new BitSet(mk_tokenSet_42());
8601        private static final long[] mk_tokenSet_43() {
8602                long[] data = { -383179802279936L, -13690342465L, 11263397156913151L, 0L, 0L, 0L};
8603                return data;
8604        }
8605        public static final BitSet _tokenSet_43 = new BitSet(mk_tokenSet_43());
8606        private static final long[] mk_tokenSet_44() {
8607                long[] data = { 0L, 9007199254790144L, 0L, 0L};
8608                return data;
8609        }
8610        public static final BitSet _tokenSet_44 = new BitSet(mk_tokenSet_44());
8611        private static final long[] mk_tokenSet_45() {
8612                long[] data = { 575897802350002176L, 1747431839791894528L, 4398046511104L, 0L, 0L, 0L};
8613                return data;
8614        }
8615        public static final BitSet _tokenSet_45 = new BitSet(mk_tokenSet_45());
8616        private static final long[] mk_tokenSet_46() {
8617                long[] data = { 575897802350002176L, 53248L, 4398046543840L, 0L, 0L, 0L};
8618                return data;
8619        }
8620        public static final BitSet _tokenSet_46 = new BitSet(mk_tokenSet_46());
8621        private static final long[] mk_tokenSet_47() {
8622                long[] data = { 1152499292141780992L, 6926536226895876096L, 4398046543870L, 0L, 0L, 0L};
8623                return data;
8624        }
8625        public static final BitSet _tokenSet_47 = new BitSet(mk_tokenSet_47());
8626        private static final long[] mk_tokenSet_48() {
8627                long[] data = { 2305420796748627968L, -17179742208L, 2256197860229119L, 0L, 0L, 0L};
8628                return data;
8629        }
8630        public static final BitSet _tokenSet_48 = new BitSet(mk_tokenSet_48());
8631        private static final long[] mk_tokenSet_49() {
8632                long[] data = { -84112639524862L, -133185L, 11272193249935359L, 0L, 0L, 0L};
8633                return data;
8634        }
8635        public static final BitSet _tokenSet_49 = new BitSet(mk_tokenSet_49());
8636        private static final long[] mk_tokenSet_50() {
8637                long[] data = { 864831865943490560L, 9007199254757376L, 4398046511104L, 0L, 0L, 0L};
8638                return data;
8639        }
8640        public static final BitSet _tokenSet_50 = new BitSet(mk_tokenSet_50());
8641        private static final long[] mk_tokenSet_51() {
8642                long[] data = { 576601489791778816L, 9216L, 4398046511104L, 0L, 0L, 0L};
8643                return data;
8644        }
8645        public static final BitSet _tokenSet_51 = new BitSet(mk_tokenSet_51());
8646        private static final long[] mk_tokenSet_52() {
8647                long[] data = { -576984669594058752L, -9007194959973569L, 4398054932479L, 0L, 0L, 0L};
8648                return data;
8649        }
8650        public static final BitSet _tokenSet_52 = new BitSet(mk_tokenSet_52());
8651        private static final long[] mk_tokenSet_53() {
8652                long[] data = { -101704825569280L, -133185L, 11263397156913151L, 0L, 0L, 0L};
8653                return data;
8654        }
8655        public static final BitSet _tokenSet_53 = new BitSet(mk_tokenSet_53());
8656        private static final long[] mk_tokenSet_54() {
8657                long[] data = { -1729941358572994560L, 1073741855L, 4398046511104L, 0L, 0L, 0L};
8658                return data;
8659        }
8660        public static final BitSet _tokenSet_54 = new BitSet(mk_tokenSet_54());
8661        private static final long[] mk_tokenSet_55() {
8662                long[] data = { -1153339868781215744L, 9007200328482847L, 4398046511104L, 0L, 0L, 0L};
8663                return data;
8664        }
8665        public static final BitSet _tokenSet_55 = new BitSet(mk_tokenSet_55());
8666        private static final long[] mk_tokenSet_56() {
8667                long[] data = { -383179802279936L, -12885036225L, 11263397123358719L, 0L, 0L, 0L};
8668                return data;
8669        }
8670        public static final BitSet _tokenSet_56 = new BitSet(mk_tokenSet_56());
8671        private static final long[] mk_tokenSet_57() {
8672                long[] data = { -2305839160922996736L, 1073741887L, 4398046511104L, 0L, 0L, 0L};
8673                return data;
8674        }
8675        public static final BitSet _tokenSet_57 = new BitSet(mk_tokenSet_57());
8676        private static final long[] mk_tokenSet_58() {
8677                long[] data = { -2017608784771284992L, 1073741887L, 4398046511104L, 0L, 0L, 0L};
8678                return data;
8679        }
8680        public static final BitSet _tokenSet_58 = new BitSet(mk_tokenSet_58());
8681        private static final long[] mk_tokenSet_59() {
8682                long[] data = { -1729906174200905728L, 6917529028714876959L, 4398046543870L, 0L, 0L, 0L};
8683                return data;
8684        }
8685        public static final BitSet _tokenSet_59 = new BitSet(mk_tokenSet_59());
8686        private static final long[] mk_tokenSet_60() {
8687                long[] data = { -383179802279936L, -16105999329L, 11263397114970111L, 0L, 0L, 0L};
8688                return data;
8689        }
8690        public static final BitSet _tokenSet_60 = new BitSet(mk_tokenSet_60());
8691        private static final long[] mk_tokenSet_61() {
8692                long[] data = { 575897802350002176L, 6917529027641397248L, 4398046543870L, 0L, 0L, 0L};
8693                return data;
8694        }
8695        public static final BitSet _tokenSet_61 = new BitSet(mk_tokenSet_61());
8696        private static final long[] mk_tokenSet_62() {
8697                long[] data = { -383179802279936L, -13153471681L, 11263397123358719L, 0L, 0L, 0L};
8698                return data;
8699        }
8700        public static final BitSet _tokenSet_62 = new BitSet(mk_tokenSet_62());
8701        private static final long[] mk_tokenSet_63() {
8702                long[] data = { 0L, 1610613248L, 0L, 0L};
8703                return data;
8704        }
8705        public static final BitSet _tokenSet_63 = new BitSet(mk_tokenSet_63());
8706        private static final long[] mk_tokenSet_64() {
8707                long[] data = { 2305456530876530688L, -17179741184L, 11263397114970111L, 0L, 0L, 0L};
8708                return data;
8709        }
8710        public static final BitSet _tokenSet_64 = new BitSet(mk_tokenSet_64());
8711        private static final long[] mk_tokenSet_65() {
8712                long[] data = { -576703194617348096L, -12885035073L, 4398088486911L, 0L, 0L, 0L};
8713                return data;
8714        }
8715        public static final BitSet _tokenSet_65 = new BitSet(mk_tokenSet_65());
8716        private static final long[] mk_tokenSet_66() {
8717                long[] data = { 1152921504606846976L, -9223372036854775808L, 1L, 0L, 0L, 0L};
8718                return data;
8719        }
8720        public static final BitSet _tokenSet_66 = new BitSet(mk_tokenSet_66());
8721        private static final long[] mk_tokenSet_67() {
8722                long[] data = { 575897802350002176L, 6917529027641143296L, 4398046543870L, 0L, 0L, 0L};
8723                return data;
8724        }
8725        public static final BitSet _tokenSet_67 = new BitSet(mk_tokenSet_67());
8726        private static final long[] mk_tokenSet_68() {
8727                long[] data = { 575897802350002176L, 6917529027641136896L, 4398046543870L, 0L, 0L, 0L};
8728                return data;
8729        }
8730        public static final BitSet _tokenSet_68 = new BitSet(mk_tokenSet_68());
8731        private static final long[] mk_tokenSet_69() {
8732                long[] data = { 576179277326712832L, 6917529027641135104L, 4398046543870L, 0L, 0L, 0L};
8733                return data;
8734        }
8735        public static final BitSet _tokenSet_69 = new BitSet(mk_tokenSet_69());
8736        private static final long[] mk_tokenSet_70() {
8737                long[] data = { 575898352105816064L, 24576L, 4398046511104L, 0L, 0L, 0L};
8738                return data;
8739        }
8740        public static final BitSet _tokenSet_70 = new BitSet(mk_tokenSet_70());
8741        private static final long[] mk_tokenSet_71() {
8742                long[] data = { 1152499292141780992L, 9007199254766592L, 9020393394274304L, 0L, 0L, 0L};
8743                return data;
8744        }
8745        public static final BitSet _tokenSet_71 = new BitSet(mk_tokenSet_71());
8746        private static final long[] mk_tokenSet_72() {
8747                long[] data = { -101704825569280L, -12885035073L, 11263397156913151L, 0L, 0L, 0L};
8748                return data;
8749        }
8750        public static final BitSet _tokenSet_72 = new BitSet(mk_tokenSet_72());
8751        
8752        }