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