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