Home | History | Annotate | Download | only in simplecTreeParser
      1 /** \file
      2  *  This OBJC source file was generated by $ANTLR version 3.4
      3  *
      4  *     -  From the grammar source file : /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g
      5  *     -                            On : 2012-02-16 17:41:10
      6  *     -           for the tree parser : SimpleCTPTreeParser
      7  *
      8  * Editing it, at least manually, is not wise.
      9  *
     10  * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
     11  *
     12  *
     13 */
     14 // $ANTLR 3.4 /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g 2012-02-16 17:41:10
     15 
     16 
     17 /* -----------------------------------------
     18  * Include the ANTLR3 generated header file.
     19  */
     20 #import "SimpleCTP.h"
     21 /* ----------------------------------------- */
     22 
     23 
     24 /* ============================================================================= */
     25 /* =============================================================================
     26  * Start of recognizer
     27  */
     28 
     29 #pragma mark Bitsets
     30 static ANTLRBitSet *FOLLOW_declaration_in_program56;
     31 static const unsigned long long FOLLOW_declaration_in_program56_data[] = { 0x00000000020000C2LL};
     32 static ANTLRBitSet *FOLLOW_variable_in_declaration76;
     33 static const unsigned long long FOLLOW_variable_in_declaration76_data[] = { 0x0000000000000002LL};
     34 static ANTLRBitSet *FOLLOW_FUNC_DECL_in_declaration87;
     35 static const unsigned long long FOLLOW_FUNC_DECL_in_declaration87_data[] = { 0x0000000000000004LL};
     36 static ANTLRBitSet *FOLLOW_functionHeader_in_declaration89;
     37 static const unsigned long long FOLLOW_functionHeader_in_declaration89_data[] = { 0x0000000000000008LL};
     38 static ANTLRBitSet *FOLLOW_FUNC_DEF_in_declaration101;
     39 static const unsigned long long FOLLOW_FUNC_DEF_in_declaration101_data[] = { 0x0000000000000004LL};
     40 static ANTLRBitSet *FOLLOW_functionHeader_in_declaration103;
     41 static const unsigned long long FOLLOW_functionHeader_in_declaration103_data[] = { 0x0000000000000020LL};
     42 static ANTLRBitSet *FOLLOW_block_in_declaration105;
     43 static const unsigned long long FOLLOW_block_in_declaration105_data[] = { 0x0000000000000008LL};
     44 static ANTLRBitSet *FOLLOW_VAR_DEF_in_variable126;
     45 static const unsigned long long FOLLOW_VAR_DEF_in_variable126_data[] = { 0x0000000000000004LL};
     46 static ANTLRBitSet *FOLLOW_type_in_variable128;
     47 static const unsigned long long FOLLOW_type_in_variable128_data[] = { 0x0000000000004000LL};
     48 static ANTLRBitSet *FOLLOW_declarator_in_variable130;
     49 static const unsigned long long FOLLOW_declarator_in_variable130_data[] = { 0x0000000000000008LL};
     50 static ANTLRBitSet *FOLLOW_K_ID_in_declarator150;
     51 static const unsigned long long FOLLOW_K_ID_in_declarator150_data[] = { 0x0000000000000002LL};
     52 static ANTLRBitSet *FOLLOW_FUNC_HDR_in_functionHeader171;
     53 static const unsigned long long FOLLOW_FUNC_HDR_in_functionHeader171_data[] = { 0x0000000000000004LL};
     54 static ANTLRBitSet *FOLLOW_type_in_functionHeader173;
     55 static const unsigned long long FOLLOW_type_in_functionHeader173_data[] = { 0x0000000000004000LL};
     56 static ANTLRBitSet *FOLLOW_K_ID_in_functionHeader175;
     57 static const unsigned long long FOLLOW_K_ID_in_functionHeader175_data[] = { 0x0000000000000010LL};
     58 static ANTLRBitSet *FOLLOW_formalParameter_in_functionHeader177;
     59 static const unsigned long long FOLLOW_formalParameter_in_functionHeader177_data[] = { 0x0000000000000018LL};
     60 static ANTLRBitSet *FOLLOW_ARG_DEF_in_formalParameter199;
     61 static const unsigned long long FOLLOW_ARG_DEF_in_formalParameter199_data[] = { 0x0000000000000004LL};
     62 static ANTLRBitSet *FOLLOW_type_in_formalParameter201;
     63 static const unsigned long long FOLLOW_type_in_formalParameter201_data[] = { 0x0000000000004000LL};
     64 static ANTLRBitSet *FOLLOW_declarator_in_formalParameter203;
     65 static const unsigned long long FOLLOW_declarator_in_formalParameter203_data[] = { 0x0000000000000008LL};
     66 static ANTLRBitSet *FOLLOW_BLOCK_in_block283;
     67 static const unsigned long long FOLLOW_BLOCK_in_block283_data[] = { 0x0000000000000004LL};
     68 static ANTLRBitSet *FOLLOW_variable_in_block285;
     69 static const unsigned long long FOLLOW_variable_in_block285_data[] = { 0x000000000218F828LL};
     70 static ANTLRBitSet *FOLLOW_stat_in_block288;
     71 static const unsigned long long FOLLOW_stat_in_block288_data[] = { 0x000000000018F828LL};
     72 static ANTLRBitSet *FOLLOW_forStat_in_stat302;
     73 static const unsigned long long FOLLOW_forStat_in_stat302_data[] = { 0x0000000000000002LL};
     74 static ANTLRBitSet *FOLLOW_expr_in_stat310;
     75 static const unsigned long long FOLLOW_expr_in_stat310_data[] = { 0x0000000000000002LL};
     76 static ANTLRBitSet *FOLLOW_block_in_stat318;
     77 static const unsigned long long FOLLOW_block_in_stat318_data[] = { 0x0000000000000002LL};
     78 static ANTLRBitSet *FOLLOW_K_FOR_in_forStat338;
     79 static const unsigned long long FOLLOW_K_FOR_in_forStat338_data[] = { 0x0000000000000004LL};
     80 static ANTLRBitSet *FOLLOW_expr_in_forStat340;
     81 static const unsigned long long FOLLOW_expr_in_forStat340_data[] = { 0x000000000018D800LL};
     82 static ANTLRBitSet *FOLLOW_expr_in_forStat342;
     83 static const unsigned long long FOLLOW_expr_in_forStat342_data[] = { 0x000000000018D800LL};
     84 static ANTLRBitSet *FOLLOW_expr_in_forStat344;
     85 static const unsigned long long FOLLOW_expr_in_forStat344_data[] = { 0x0000000000000020LL};
     86 static ANTLRBitSet *FOLLOW_block_in_forStat346;
     87 static const unsigned long long FOLLOW_block_in_forStat346_data[] = { 0x0000000000000008LL};
     88 static ANTLRBitSet *FOLLOW_K_EQEQ_in_expr362;
     89 static const unsigned long long FOLLOW_K_EQEQ_in_expr362_data[] = { 0x0000000000000004LL};
     90 static ANTLRBitSet *FOLLOW_expr_in_expr364;
     91 static const unsigned long long FOLLOW_expr_in_expr364_data[] = { 0x000000000018D800LL};
     92 static ANTLRBitSet *FOLLOW_expr_in_expr366;
     93 static const unsigned long long FOLLOW_expr_in_expr366_data[] = { 0x0000000000000008LL};
     94 static ANTLRBitSet *FOLLOW_K_LT_in_expr378;
     95 static const unsigned long long FOLLOW_K_LT_in_expr378_data[] = { 0x0000000000000004LL};
     96 static ANTLRBitSet *FOLLOW_expr_in_expr380;
     97 static const unsigned long long FOLLOW_expr_in_expr380_data[] = { 0x000000000018D800LL};
     98 static ANTLRBitSet *FOLLOW_expr_in_expr382;
     99 static const unsigned long long FOLLOW_expr_in_expr382_data[] = { 0x0000000000000008LL};
    100 static ANTLRBitSet *FOLLOW_K_PLUS_in_expr394;
    101 static const unsigned long long FOLLOW_K_PLUS_in_expr394_data[] = { 0x0000000000000004LL};
    102 static ANTLRBitSet *FOLLOW_expr_in_expr396;
    103 static const unsigned long long FOLLOW_expr_in_expr396_data[] = { 0x000000000018D800LL};
    104 static ANTLRBitSet *FOLLOW_expr_in_expr398;
    105 static const unsigned long long FOLLOW_expr_in_expr398_data[] = { 0x0000000000000008LL};
    106 static ANTLRBitSet *FOLLOW_K_EQ_in_expr410;
    107 static const unsigned long long FOLLOW_K_EQ_in_expr410_data[] = { 0x0000000000000004LL};
    108 static ANTLRBitSet *FOLLOW_K_ID_in_expr412;
    109 static const unsigned long long FOLLOW_K_ID_in_expr412_data[] = { 0x000000000018D800LL};
    110 static ANTLRBitSet *FOLLOW_expr_in_expr416;
    111 static const unsigned long long FOLLOW_expr_in_expr416_data[] = { 0x0000000000000008LL};
    112 static ANTLRBitSet *FOLLOW_atom_in_expr429;
    113 static const unsigned long long FOLLOW_atom_in_expr429_data[] = { 0x0000000000000002LL};
    114 
    115 
    116 #pragma mark Dynamic Global globalAttributeScopeImplementation
    117 @implementation Symbols_Scope  /* globalAttributeScopeImplementation */
    118 /* start of synthesize -- OBJC-Line 1750 */
    119 @synthesize tree;
    120 
    121 + (Symbols_Scope *)newSymbols_Scope
    122 {
    123 return [[Symbols_Scope alloc] init];
    124 }
    125 
    126 - (id) init
    127 {
    128 self = [super init];
    129 return self;
    130 }
    131 
    132 /* start of iterate get and set functions */
    133 - (ANTLRCommonTree *)gettree { return( tree ); }
    134 - (void)settree:(ANTLRCommonTree *)aVal { tree = aVal; }
    135 
    136 /* End of iterate get and set functions */
    137 @end /* end of Symbols_Scope implementation */
    138 
    139 
    140 
    141 #pragma mark Dynamic Rule Scopes ruleAttributeScopeImplementation
    142 
    143 #pragma mark Rule Return Scopes returnScopeImplementation
    144 @implementation SimpleCTP_expr_return /* returnScopeImplementation */
    145  /* start of synthesize -- OBJC-Line 1837 */
    146 + (SimpleCTP_expr_return *)newSimpleCTP_expr_return
    147 {
    148 return [[[SimpleCTP_expr_return alloc] init] retain];
    149 }
    150 
    151 - (id) init
    152 {
    153 self = [super init];
    154 return self;
    155 }
    156 
    157 
    158 
    159 @end /* end of returnScope implementation */
    160 
    161 
    162 
    163 @implementation SimpleCTP  // line 637
    164 
    165 /* ObjC start of ruleAttributeScope */
    166 #pragma mark Dynamic Rule Scopes ruleAttributeScope
    167 /* ObjC end of ruleAttributeScope */
    168 #pragma mark global Attribute Scopes globalAttributeScope
    169 /* ObjC start globalAttributeScope */
    170 static _stack;
    171 
    172 /* ObjC end globalAttributeScope */
    173 /* ObjC start actions.(actionScope).synthesize */
    174 /* ObjC start synthesize() */
    175 
    176 + (void) initialize
    177 {
    178     #pragma mark Bitsets
    179     FOLLOW_declaration_in_program56 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_declaration_in_program56_data Count:(NSUInteger)1] retain];
    180     FOLLOW_variable_in_declaration76 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_variable_in_declaration76_data Count:(NSUInteger)1] retain];
    181     FOLLOW_FUNC_DECL_in_declaration87 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_FUNC_DECL_in_declaration87_data Count:(NSUInteger)1] retain];
    182     FOLLOW_functionHeader_in_declaration89 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_functionHeader_in_declaration89_data Count:(NSUInteger)1] retain];
    183     FOLLOW_FUNC_DEF_in_declaration101 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_FUNC_DEF_in_declaration101_data Count:(NSUInteger)1] retain];
    184     FOLLOW_functionHeader_in_declaration103 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_functionHeader_in_declaration103_data Count:(NSUInteger)1] retain];
    185     FOLLOW_block_in_declaration105 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_declaration105_data Count:(NSUInteger)1] retain];
    186     FOLLOW_VAR_DEF_in_variable126 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_VAR_DEF_in_variable126_data Count:(NSUInteger)1] retain];
    187     FOLLOW_type_in_variable128 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_variable128_data Count:(NSUInteger)1] retain];
    188     FOLLOW_declarator_in_variable130 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_declarator_in_variable130_data Count:(NSUInteger)1] retain];
    189     FOLLOW_K_ID_in_declarator150 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_declarator150_data Count:(NSUInteger)1] retain];
    190     FOLLOW_FUNC_HDR_in_functionHeader171 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_FUNC_HDR_in_functionHeader171_data Count:(NSUInteger)1] retain];
    191     FOLLOW_type_in_functionHeader173 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_functionHeader173_data Count:(NSUInteger)1] retain];
    192     FOLLOW_K_ID_in_functionHeader175 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_functionHeader175_data Count:(NSUInteger)1] retain];
    193     FOLLOW_formalParameter_in_functionHeader177 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_formalParameter_in_functionHeader177_data Count:(NSUInteger)1] retain];
    194     FOLLOW_ARG_DEF_in_formalParameter199 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_ARG_DEF_in_formalParameter199_data Count:(NSUInteger)1] retain];
    195     FOLLOW_type_in_formalParameter201 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_formalParameter201_data Count:(NSUInteger)1] retain];
    196     FOLLOW_declarator_in_formalParameter203 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_declarator_in_formalParameter203_data Count:(NSUInteger)1] retain];
    197     FOLLOW_BLOCK_in_block283 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_BLOCK_in_block283_data Count:(NSUInteger)1] retain];
    198     FOLLOW_variable_in_block285 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_variable_in_block285_data Count:(NSUInteger)1] retain];
    199     FOLLOW_stat_in_block288 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_stat_in_block288_data Count:(NSUInteger)1] retain];
    200     FOLLOW_forStat_in_stat302 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_forStat_in_stat302_data Count:(NSUInteger)1] retain];
    201     FOLLOW_expr_in_stat310 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_stat310_data Count:(NSUInteger)1] retain];
    202     FOLLOW_block_in_stat318 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_stat318_data Count:(NSUInteger)1] retain];
    203     FOLLOW_K_FOR_in_forStat338 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_K_FOR_in_forStat338_data Count:(NSUInteger)1] retain];
    204     FOLLOW_expr_in_forStat340 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_forStat340_data Count:(NSUInteger)1] retain];
    205     FOLLOW_expr_in_forStat342 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_forStat342_data Count:(NSUInteger)1] retain];
    206     FOLLOW_expr_in_forStat344 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_forStat344_data Count:(NSUInteger)1] retain];
    207     FOLLOW_block_in_forStat346 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_forStat346_data Count:(NSUInteger)1] retain];
    208     FOLLOW_K_EQEQ_in_expr362 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_K_EQEQ_in_expr362_data Count:(NSUInteger)1] retain];
    209     FOLLOW_expr_in_expr364 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr364_data Count:(NSUInteger)1] retain];
    210     FOLLOW_expr_in_expr366 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr366_data Count:(NSUInteger)1] retain];
    211     FOLLOW_K_LT_in_expr378 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_K_LT_in_expr378_data Count:(NSUInteger)1] retain];
    212     FOLLOW_expr_in_expr380 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr380_data Count:(NSUInteger)1] retain];
    213     FOLLOW_expr_in_expr382 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr382_data Count:(NSUInteger)1] retain];
    214     FOLLOW_K_PLUS_in_expr394 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_K_PLUS_in_expr394_data Count:(NSUInteger)1] retain];
    215     FOLLOW_expr_in_expr396 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr396_data Count:(NSUInteger)1] retain];
    216     FOLLOW_expr_in_expr398 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr398_data Count:(NSUInteger)1] retain];
    217     FOLLOW_K_EQ_in_expr410 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_K_EQ_in_expr410_data Count:(NSUInteger)1] retain];
    218     FOLLOW_K_ID_in_expr412 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_expr412_data Count:(NSUInteger)1] retain];
    219     FOLLOW_expr_in_expr416 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr416_data Count:(NSUInteger)1] retain];
    220     FOLLOW_atom_in_expr429 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_atom_in_expr429_data Count:(NSUInteger)1] retain];
    221 
    222     [BaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>",
    223  @"ARG_DEF", @"BLOCK", @"FUNC_DECL", @"FUNC_DEF", @"FUNC_HDR", @"K_CHAR",
    224  @"K_COMMA", @"K_EQ", @"K_EQEQ", @"K_FOR", @"K_ID", @"K_INT", @"K_INT_TYPE",
    225  @"K_LCURLY", @"K_LCURVE", @"K_LT", @"K_PLUS", @"K_RCURLY", @"K_RCURVE",
    226  @"K_SEMICOLON", @"K_VOID", @"VAR_DEF", @"WS", nil] retain]];
    227     [BaseRecognizer setGrammarFileName:@"/Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g"];
    228 }
    229 
    230 + (SimpleCTP *)newSimpleCTP:(id<TreeNodeStream>)aStream
    231 {
    232     return [[SimpleCTP alloc] initWithStream:aStream];
    233 }
    234 
    235 - (id) initWithStream:(id<TreeNodeStream>)aStream
    236 {
    237     self = [super initWithStream:aStream State:[[RecognizerSharedState newRecognizerSharedStateWithRuleLen:12+1] retain]];
    238     if ( self != nil ) {
    239         /* globalAttributeScopeInit */
    240 
    241         Symbols_scope = [Symbols_Scope newSymbols_Scope];
    242 
    243         Symbols_stack = [SymbolStack newSymbolStackWithLen:30];
    244 
    245         /* start of actions-actionScope-init */
    246         /* start of init */
    247     }
    248     return self;
    249 }
    250 
    251 - (void) dealloc
    252 {
    253     [Symbols_stack release];
    254 
    255     [super dealloc];
    256 }
    257 
    258 /* ObjC start actions.(actionScope).methods */
    259 /* ObjC end actions.(actionScope).methods */
    260 /* ObjC start methods() */
    261 /* ObjC end methods() */
    262 /* ObjC start rules */
    263 /*
    264  * $ANTLR start program
    265  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:13:1: program : ( declaration )+ ;
    266  */
    267 - (void) program
    268 {
    269     /* ruleScopeSetUp */
    270 
    271     /* ruleDeclarations */
    272 
    273     @try {
    274         /* ruleLabelDefs entry */
    275 
    276 
    277         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:14:5: ( ( declaration )+ ) // ruleBlockSingleAlt
    278         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:14:9: ( declaration )+ // alt
    279         {
    280 
    281         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:14:9: ( declaration )+ // positiveClosureBlock
    282         NSInteger cnt1 = 0;
    283         do {
    284             NSInteger alt1 = 2;
    285             NSInteger LA1_0 = [input LA:1];
    286             if ( ((LA1_0 >= FUNC_DECL && LA1_0 <= FUNC_DEF)||LA1_0==VAR_DEF) ) {
    287                 alt1=1;
    288             }
    289 
    290 
    291             switch (alt1) {
    292                 case 1 : ;
    293                     // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:14:9: declaration // alt
    294                     {
    295 
    296                     /* ruleRef */
    297                     [self pushFollow:FOLLOW_declaration_in_program56];
    298                     [self declaration];
    299 
    300                     [self popFollow];
    301 
    302 
    303 
    304                     }
    305                     break;
    306 
    307                 default :
    308                     if ( cnt1 >= 1 )
    309                         goto loop1;
    310                     EarlyExitException *eee =
    311                         [EarlyExitException newException:input decisionNumber:1];
    312                     @throw eee;
    313             }
    314             cnt1++;
    315         } while (YES);
    316         loop1: ;
    317 
    318 
    319         }
    320 
    321         /* token+rule list labels */
    322 
    323     }
    324     @catch (RecognitionException *re) {
    325         [self reportError:re];
    326         [self recover:input Exception:re];
    327     }
    328 
    329     @finally {
    330         /* ruleScopeCleanUp */
    331 
    332     }
    333     return ;
    334 }
    335 /* $ANTLR end program */
    336 
    337 /*
    338  * $ANTLR start declaration
    339  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:17:1: declaration : ( variable | ^( FUNC_DECL functionHeader ) | ^( FUNC_DEF functionHeader block ) );
    340  */
    341 - (void) declaration
    342 {
    343     /* ruleScopeSetUp */
    344 
    345     /* ruleDeclarations */
    346 
    347     @try {
    348         /* ruleLabelDefs entry */
    349 
    350 
    351         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:18:5: ( variable | ^( FUNC_DECL functionHeader ) | ^( FUNC_DEF functionHeader block ) ) //ruleblock
    352         NSInteger alt2=3;
    353         unichar charLA2 = [input LA:1];
    354         switch (charLA2) {
    355             case VAR_DEF: ;
    356                 {
    357                 alt2=1;
    358                 }
    359                 break;
    360             case FUNC_DECL: ;
    361                 {
    362                 alt2=2;
    363                 }
    364                 break;
    365             case FUNC_DEF: ;
    366                 {
    367                 alt2=3;
    368                 }
    369                 break;
    370 
    371         default: ;
    372             NoViableAltException *nvae = [NoViableAltException newException:2 state:0 stream:input];
    373             nvae.c = charLA2;
    374             @throw nvae;
    375 
    376         }
    377 
    378         switch (alt2) {
    379             case 1 : ;
    380                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:18:9: variable // alt
    381                 {
    382 
    383                 /* ruleRef */
    384                 [self pushFollow:FOLLOW_variable_in_declaration76];
    385                 [self variable];
    386 
    387                 [self popFollow];
    388 
    389 
    390 
    391                 }
    392                 break;
    393             case 2 : ;
    394                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:19:9: ^( FUNC_DECL functionHeader ) // alt
    395                 {
    396 
    397 
    398                 [self match:input TokenType:FUNC_DECL Follow:FOLLOW_FUNC_DECL_in_declaration87];
    399 
    400                     [self match:input TokenType:DOWN Follow:nil];
    401 
    402                     /* ruleRef */
    403                     [self pushFollow:FOLLOW_functionHeader_in_declaration89];
    404                     [self functionHeader];
    405 
    406                     [self popFollow];
    407 
    408 
    409 
    410                     [self match:input TokenType:UP Follow:nil];
    411 
    412 
    413                 }
    414                 break;
    415             case 3 : ;
    416                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:20:9: ^( FUNC_DEF functionHeader block ) // alt
    417                 {
    418 
    419 
    420                 [self match:input TokenType:FUNC_DEF Follow:FOLLOW_FUNC_DEF_in_declaration101];
    421 
    422                     [self match:input TokenType:DOWN Follow:nil];
    423 
    424                     /* ruleRef */
    425                     [self pushFollow:FOLLOW_functionHeader_in_declaration103];
    426                     [self functionHeader];
    427 
    428                     [self popFollow];
    429 
    430 
    431 
    432                     /* ruleRef */
    433                     [self pushFollow:FOLLOW_block_in_declaration105];
    434                     [self block];
    435 
    436                     [self popFollow];
    437 
    438 
    439 
    440                     [self match:input TokenType:UP Follow:nil];
    441 
    442 
    443                 }
    444                 break;
    445 
    446         }
    447         /* token+rule list labels */
    448 
    449     }
    450     @catch (RecognitionException *re) {
    451         [self reportError:re];
    452         [self recover:input Exception:re];
    453     }
    454 
    455     @finally {
    456         /* ruleScopeCleanUp */
    457 
    458     }
    459     return ;
    460 }
    461 /* $ANTLR end declaration */
    462 
    463 /*
    464  * $ANTLR start variable
    465  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:23:1: variable : ^( VAR_DEF type declarator ) ;
    466  */
    467 - (void) variable
    468 {
    469     /* ruleScopeSetUp */
    470 
    471     /* ruleDeclarations */
    472 
    473     @try {
    474         /* ruleLabelDefs entry */
    475 
    476 
    477         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:24:5: ( ^( VAR_DEF type declarator ) ) // ruleBlockSingleAlt
    478         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:24:9: ^( VAR_DEF type declarator ) // alt
    479         {
    480 
    481 
    482         [self match:input TokenType:VAR_DEF Follow:FOLLOW_VAR_DEF_in_variable126];
    483 
    484             [self match:input TokenType:DOWN Follow:nil];
    485 
    486             /* ruleRef */
    487             [self pushFollow:FOLLOW_type_in_variable128];
    488             [self type];
    489 
    490             [self popFollow];
    491 
    492 
    493 
    494             /* ruleRef */
    495             [self pushFollow:FOLLOW_declarator_in_variable130];
    496             [self declarator];
    497 
    498             [self popFollow];
    499 
    500 
    501 
    502             [self match:input TokenType:UP Follow:nil];
    503 
    504 
    505         }
    506 
    507         /* token+rule list labels */
    508 
    509     }
    510     @catch (RecognitionException *re) {
    511         [self reportError:re];
    512         [self recover:input Exception:re];
    513     }
    514 
    515     @finally {
    516         /* ruleScopeCleanUp */
    517 
    518     }
    519     return ;
    520 }
    521 /* $ANTLR end variable */
    522 
    523 /*
    524  * $ANTLR start declarator
    525  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:27:1: declarator : K_ID ;
    526  */
    527 - (void) declarator
    528 {
    529     /* ruleScopeSetUp */
    530 
    531     /* ruleDeclarations */
    532 
    533     @try {
    534         /* ruleLabelDefs entry */
    535 
    536 
    537         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:28:5: ( K_ID ) // ruleBlockSingleAlt
    538         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:28:9: K_ID // alt
    539         {
    540 
    541         [self match:input TokenType:K_ID Follow:FOLLOW_K_ID_in_declarator150];
    542 
    543         }
    544 
    545         /* token+rule list labels */
    546 
    547     }
    548     @catch (RecognitionException *re) {
    549         [self reportError:re];
    550         [self recover:input Exception:re];
    551     }
    552 
    553     @finally {
    554         /* ruleScopeCleanUp */
    555 
    556     }
    557     return ;
    558 }
    559 /* $ANTLR end declarator */
    560 
    561 /*
    562  * $ANTLR start functionHeader
    563  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:31:1: functionHeader : ^( FUNC_HDR type K_ID ( formalParameter )+ ) ;
    564  */
    565 - (void) functionHeader
    566 {
    567     /* ruleScopeSetUp */
    568 
    569     /* ruleDeclarations */
    570 
    571     @try {
    572         /* ruleLabelDefs entry */
    573 
    574 
    575         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:32:5: ( ^( FUNC_HDR type K_ID ( formalParameter )+ ) ) // ruleBlockSingleAlt
    576         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:32:9: ^( FUNC_HDR type K_ID ( formalParameter )+ ) // alt
    577         {
    578 
    579 
    580         [self match:input TokenType:FUNC_HDR Follow:FOLLOW_FUNC_HDR_in_functionHeader171];
    581 
    582             [self match:input TokenType:DOWN Follow:nil];
    583 
    584             /* ruleRef */
    585             [self pushFollow:FOLLOW_type_in_functionHeader173];
    586             [self type];
    587 
    588             [self popFollow];
    589 
    590 
    591 
    592             [self match:input TokenType:K_ID Follow:FOLLOW_K_ID_in_functionHeader175];
    593 
    594             // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:32:30: ( formalParameter )+ // positiveClosureBlock
    595             NSInteger cnt3 = 0;
    596             do {
    597                 NSInteger alt3 = 2;
    598                 NSInteger LA3_0 = [input LA:1];
    599                 if ( (LA3_0==ARG_DEF) ) {
    600                     alt3=1;
    601                 }
    602 
    603 
    604                 switch (alt3) {
    605                     case 1 : ;
    606                         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:32:30: formalParameter // alt
    607                         {
    608 
    609                         /* ruleRef */
    610                         [self pushFollow:FOLLOW_formalParameter_in_functionHeader177];
    611                         [self formalParameter];
    612 
    613                         [self popFollow];
    614 
    615 
    616 
    617                         }
    618                         break;
    619 
    620                     default :
    621                         if ( cnt3 >= 1 )
    622                             goto loop3;
    623                         EarlyExitException *eee =
    624                             [EarlyExitException newException:input decisionNumber:3];
    625                         @throw eee;
    626                 }
    627                 cnt3++;
    628             } while (YES);
    629             loop3: ;
    630 
    631 
    632             [self match:input TokenType:UP Follow:nil];
    633 
    634 
    635         }
    636 
    637         /* token+rule list labels */
    638 
    639     }
    640     @catch (RecognitionException *re) {
    641         [self reportError:re];
    642         [self recover:input Exception:re];
    643     }
    644 
    645     @finally {
    646         /* ruleScopeCleanUp */
    647 
    648     }
    649     return ;
    650 }
    651 /* $ANTLR end functionHeader */
    652 
    653 /*
    654  * $ANTLR start formalParameter
    655  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:35:1: formalParameter : ^( ARG_DEF type declarator ) ;
    656  */
    657 - (void) formalParameter
    658 {
    659     /* ruleScopeSetUp */
    660 
    661     /* ruleDeclarations */
    662 
    663     @try {
    664         /* ruleLabelDefs entry */
    665 
    666 
    667         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:36:5: ( ^( ARG_DEF type declarator ) ) // ruleBlockSingleAlt
    668         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:36:9: ^( ARG_DEF type declarator ) // alt
    669         {
    670 
    671 
    672         [self match:input TokenType:ARG_DEF Follow:FOLLOW_ARG_DEF_in_formalParameter199];
    673 
    674             [self match:input TokenType:DOWN Follow:nil];
    675 
    676             /* ruleRef */
    677             [self pushFollow:FOLLOW_type_in_formalParameter201];
    678             [self type];
    679 
    680             [self popFollow];
    681 
    682 
    683 
    684             /* ruleRef */
    685             [self pushFollow:FOLLOW_declarator_in_formalParameter203];
    686             [self declarator];
    687 
    688             [self popFollow];
    689 
    690 
    691 
    692             [self match:input TokenType:UP Follow:nil];
    693 
    694 
    695         }
    696 
    697         /* token+rule list labels */
    698 
    699     }
    700     @catch (RecognitionException *re) {
    701         [self reportError:re];
    702         [self recover:input Exception:re];
    703     }
    704 
    705     @finally {
    706         /* ruleScopeCleanUp */
    707 
    708     }
    709     return ;
    710 }
    711 /* $ANTLR end formalParameter */
    712 
    713 /*
    714  * $ANTLR start type
    715  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:39:1: type : ( K_INT_TYPE | K_CHAR | K_VOID | K_ID );
    716  */
    717 - (void) type
    718 {
    719     /* ruleScopeSetUp */
    720 
    721     /* ruleDeclarations */
    722 
    723     @try {
    724         /* ruleLabelDefs entry */
    725 
    726 
    727         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:40:5: ( K_INT_TYPE | K_CHAR | K_VOID | K_ID ) // ruleBlockSingleAlt
    728         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g: // alt
    729         {
    730 
    731         if ([input LA:1] == K_CHAR||[input LA:1] == K_ID||[input LA:1] == K_INT_TYPE||[input LA:1] == K_VOID) {
    732             [input consume];
    733             [state setIsErrorRecovery:NO];
    734         } else {
    735             MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input];
    736             @throw mse;
    737         }
    738 
    739 
    740         }
    741 
    742         /* token+rule list labels */
    743 
    744     }
    745     @catch (RecognitionException *re) {
    746         [self reportError:re];
    747         [self recover:input Exception:re];
    748     }
    749 
    750     @finally {
    751         /* ruleScopeCleanUp */
    752 
    753     }
    754     return ;
    755 }
    756 /* $ANTLR end type */
    757 
    758 /*
    759  * $ANTLR start block
    760  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:46:1: block : ^( BLOCK ( variable )* ( stat )* ) ;
    761  */
    762 - (void) block
    763 {
    764     /* ruleScopeSetUp */
    765 
    766     /* ruleDeclarations */
    767 
    768     @try {
    769         /* ruleLabelDefs entry */
    770 
    771 
    772         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:47:5: ( ^( BLOCK ( variable )* ( stat )* ) ) // ruleBlockSingleAlt
    773         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:47:9: ^( BLOCK ( variable )* ( stat )* ) // alt
    774         {
    775 
    776 
    777         [self match:input TokenType:BLOCK Follow:FOLLOW_BLOCK_in_block283];
    778 
    779         if ( [input LA:1] == DOWN ) {
    780             [self match:input TokenType:DOWN Follow:nil];
    781 
    782 
    783             do {
    784                 NSInteger alt4=2;
    785                 NSInteger LA4_0 = [input LA:1];
    786                 if ( (LA4_0==VAR_DEF) ) {
    787                     alt4=1;
    788                 }
    789 
    790 
    791                 switch (alt4) {
    792                     case 1 : ;
    793                         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:47:17: variable // alt
    794                         {
    795 
    796                         /* ruleRef */
    797                         [self pushFollow:FOLLOW_variable_in_block285];
    798                         [self variable];
    799 
    800                         [self popFollow];
    801 
    802 
    803 
    804                         }
    805                         break;
    806 
    807                     default :
    808                         goto loop4;
    809                 }
    810             } while (YES);
    811             loop4: ;
    812 
    813 
    814 
    815             do {
    816                 NSInteger alt5=2;
    817                 NSInteger LA5_0 = [input LA:1];
    818                 if ( (LA5_0==BLOCK||(LA5_0 >= K_EQ && LA5_0 <= K_INT)||(LA5_0 >= K_LT && LA5_0 <= K_PLUS)) ) {
    819                     alt5=1;
    820                 }
    821 
    822 
    823                 switch (alt5) {
    824                     case 1 : ;
    825                         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:47:27: stat // alt
    826                         {
    827 
    828                         /* ruleRef */
    829                         [self pushFollow:FOLLOW_stat_in_block288];
    830                         [self stat];
    831 
    832                         [self popFollow];
    833 
    834 
    835 
    836                         }
    837                         break;
    838 
    839                     default :
    840                         goto loop5;
    841                 }
    842             } while (YES);
    843             loop5: ;
    844 
    845 
    846             [self match:input TokenType:UP Follow:nil];
    847         }
    848 
    849 
    850         }
    851 
    852         /* token+rule list labels */
    853 
    854     }
    855     @catch (RecognitionException *re) {
    856         [self reportError:re];
    857         [self recover:input Exception:re];
    858     }
    859 
    860     @finally {
    861         /* ruleScopeCleanUp */
    862 
    863     }
    864     return ;
    865 }
    866 /* $ANTLR end block */
    867 
    868 /*
    869  * $ANTLR start stat
    870  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:50:1: stat : ( forStat | expr | block );
    871  */
    872 - (void) stat
    873 {
    874     /* ruleScopeSetUp */
    875 
    876     /* ruleDeclarations */
    877 
    878     @try {
    879         /* ruleLabelDefs entry */
    880 
    881 
    882         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:50:5: ( forStat | expr | block ) //ruleblock
    883         NSInteger alt6=3;
    884         unichar charLA6 = [input LA:1];
    885         switch (charLA6) {
    886             case K_FOR: ;
    887                 {
    888                 alt6=1;
    889                 }
    890                 break;
    891             case K_EQ: ;
    892             case K_EQEQ: ;
    893             case K_ID: ;
    894             case K_INT: ;
    895             case K_LT: ;
    896             case K_PLUS: ;
    897                 {
    898                 alt6=2;
    899                 }
    900                 break;
    901             case BLOCK: ;
    902                 {
    903                 alt6=3;
    904                 }
    905                 break;
    906 
    907         default: ;
    908             NoViableAltException *nvae = [NoViableAltException newException:6 state:0 stream:input];
    909             nvae.c = charLA6;
    910             @throw nvae;
    911 
    912         }
    913 
    914         switch (alt6) {
    915             case 1 : ;
    916                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:50:7: forStat // alt
    917                 {
    918 
    919                 /* ruleRef */
    920                 [self pushFollow:FOLLOW_forStat_in_stat302];
    921                 [self forStat];
    922 
    923                 [self popFollow];
    924 
    925 
    926 
    927                 }
    928                 break;
    929             case 2 : ;
    930                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:51:7: expr // alt
    931                 {
    932 
    933                 /* ruleRef */
    934                 [self pushFollow:FOLLOW_expr_in_stat310];
    935                 [self expr];
    936 
    937                 [self popFollow];
    938 
    939 
    940 
    941                 }
    942                 break;
    943             case 3 : ;
    944                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:52:7: block // alt
    945                 {
    946 
    947                 /* ruleRef */
    948                 [self pushFollow:FOLLOW_block_in_stat318];
    949                 [self block];
    950 
    951                 [self popFollow];
    952 
    953 
    954 
    955                 }
    956                 break;
    957 
    958         }
    959         /* token+rule list labels */
    960 
    961     }
    962     @catch (RecognitionException *re) {
    963         [self reportError:re];
    964         [self recover:input Exception:re];
    965     }
    966 
    967     @finally {
    968         /* ruleScopeCleanUp */
    969 
    970     }
    971     return ;
    972 }
    973 /* $ANTLR end stat */
    974 
    975 /*
    976  * $ANTLR start forStat
    977  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:55:1: forStat : ^( K_FOR expr expr expr block ) ;
    978  */
    979 - (void) forStat
    980 {
    981     /* ruleScopeSetUp */
    982 
    983     /* ruleDeclarations */
    984 
    985     @try {
    986         /* ruleLabelDefs entry */
    987 
    988 
    989         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:56:5: ( ^( K_FOR expr expr expr block ) ) // ruleBlockSingleAlt
    990         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:56:9: ^( K_FOR expr expr expr block ) // alt
    991         {
    992 
    993 
    994         [self match:input TokenType:K_FOR Follow:FOLLOW_K_FOR_in_forStat338];
    995 
    996             [self match:input TokenType:DOWN Follow:nil];
    997 
    998             /* ruleRef */
    999             [self pushFollow:FOLLOW_expr_in_forStat340];
   1000             [self expr];
   1001 
   1002             [self popFollow];
   1003 
   1004 
   1005 
   1006             /* ruleRef */
   1007             [self pushFollow:FOLLOW_expr_in_forStat342];
   1008             [self expr];
   1009 
   1010             [self popFollow];
   1011 
   1012 
   1013 
   1014             /* ruleRef */
   1015             [self pushFollow:FOLLOW_expr_in_forStat344];
   1016             [self expr];
   1017 
   1018             [self popFollow];
   1019 
   1020 
   1021 
   1022             /* ruleRef */
   1023             [self pushFollow:FOLLOW_block_in_forStat346];
   1024             [self block];
   1025 
   1026             [self popFollow];
   1027 
   1028 
   1029 
   1030             [self match:input TokenType:UP Follow:nil];
   1031 
   1032 
   1033         }
   1034 
   1035         /* token+rule list labels */
   1036 
   1037     }
   1038     @catch (RecognitionException *re) {
   1039         [self reportError:re];
   1040         [self recover:input Exception:re];
   1041     }
   1042 
   1043     @finally {
   1044         /* ruleScopeCleanUp */
   1045 
   1046     }
   1047     return ;
   1048 }
   1049 /* $ANTLR end forStat */
   1050 
   1051 /*
   1052  * $ANTLR start expr
   1053  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:59:1: expr : ( ^( K_EQEQ expr expr ) | ^( K_LT expr expr ) | ^( K_PLUS expr expr ) | ^( K_EQ K_ID e= expr ) | atom );
   1054  */
   1055 - (SimpleCTP_expr_return *) expr
   1056 {
   1057     /* ruleScopeSetUp */
   1058 
   1059     /* ruleDeclarations */
   1060     SimpleCTP_expr_return * retval = [SimpleCTP_expr_return newSimpleCTP_expr_return];
   1061     [retval setStart:[input LT:1]];
   1062 
   1063 
   1064     @try {
   1065         /* ruleLabelDefs entry */
   1066         ANTLRCommonTree *K_ID1 = nil;SimpleCTP_expr_return * e = nil ;
   1067 
   1068 
   1069         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:59:5: ( ^( K_EQEQ expr expr ) | ^( K_LT expr expr ) | ^( K_PLUS expr expr ) | ^( K_EQ K_ID e= expr ) | atom ) //ruleblock
   1070         NSInteger alt7=5;
   1071         unichar charLA7 = [input LA:1];
   1072         switch (charLA7) {
   1073             case K_EQEQ: ;
   1074                 {
   1075                 alt7=1;
   1076                 }
   1077                 break;
   1078             case K_LT: ;
   1079                 {
   1080                 alt7=2;
   1081                 }
   1082                 break;
   1083             case K_PLUS: ;
   1084                 {
   1085                 alt7=3;
   1086                 }
   1087                 break;
   1088             case K_EQ: ;
   1089                 {
   1090                 alt7=4;
   1091                 }
   1092                 break;
   1093             case K_ID: ;
   1094             case K_INT: ;
   1095                 {
   1096                 alt7=5;
   1097                 }
   1098                 break;
   1099 
   1100         default: ;
   1101             NoViableAltException *nvae = [NoViableAltException newException:7 state:0 stream:input];
   1102             nvae.c = charLA7;
   1103             @throw nvae;
   1104 
   1105         }
   1106 
   1107         switch (alt7) {
   1108             case 1 : ;
   1109                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:59:9: ^( K_EQEQ expr expr ) // alt
   1110                 {
   1111 
   1112 
   1113                 [self match:input TokenType:K_EQEQ Follow:FOLLOW_K_EQEQ_in_expr362];
   1114 
   1115                     [self match:input TokenType:DOWN Follow:nil];
   1116 
   1117                     /* ruleRef */
   1118                     [self pushFollow:FOLLOW_expr_in_expr364];
   1119                     [self expr];
   1120 
   1121                     [self popFollow];
   1122 
   1123 
   1124 
   1125                     /* ruleRef */
   1126                     [self pushFollow:FOLLOW_expr_in_expr366];
   1127                     [self expr];
   1128 
   1129                     [self popFollow];
   1130 
   1131 
   1132 
   1133                     [self match:input TokenType:UP Follow:nil];
   1134 
   1135 
   1136                 }
   1137                 break;
   1138             case 2 : ;
   1139                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:60:9: ^( K_LT expr expr ) // alt
   1140                 {
   1141 
   1142 
   1143                 [self match:input TokenType:K_LT Follow:FOLLOW_K_LT_in_expr378];
   1144 
   1145                     [self match:input TokenType:DOWN Follow:nil];
   1146 
   1147                     /* ruleRef */
   1148                     [self pushFollow:FOLLOW_expr_in_expr380];
   1149                     [self expr];
   1150 
   1151                     [self popFollow];
   1152 
   1153 
   1154 
   1155                     /* ruleRef */
   1156                     [self pushFollow:FOLLOW_expr_in_expr382];
   1157                     [self expr];
   1158 
   1159                     [self popFollow];
   1160 
   1161 
   1162 
   1163                     [self match:input TokenType:UP Follow:nil];
   1164 
   1165 
   1166                 }
   1167                 break;
   1168             case 3 : ;
   1169                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:61:9: ^( K_PLUS expr expr ) // alt
   1170                 {
   1171 
   1172 
   1173                 [self match:input TokenType:K_PLUS Follow:FOLLOW_K_PLUS_in_expr394];
   1174 
   1175                     [self match:input TokenType:DOWN Follow:nil];
   1176 
   1177                     /* ruleRef */
   1178                     [self pushFollow:FOLLOW_expr_in_expr396];
   1179                     [self expr];
   1180 
   1181                     [self popFollow];
   1182 
   1183 
   1184 
   1185                     /* ruleRef */
   1186                     [self pushFollow:FOLLOW_expr_in_expr398];
   1187                     [self expr];
   1188 
   1189                     [self popFollow];
   1190 
   1191 
   1192 
   1193                     [self match:input TokenType:UP Follow:nil];
   1194 
   1195 
   1196                 }
   1197                 break;
   1198             case 4 : ;
   1199                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:62:9: ^( K_EQ K_ID e= expr ) // alt
   1200                 {
   1201 
   1202 
   1203                 [self match:input TokenType:K_EQ Follow:FOLLOW_K_EQ_in_expr410];
   1204 
   1205                     [self match:input TokenType:DOWN Follow:nil];
   1206 
   1207                     K_ID1=(ANTLRCommonTree *)[self match:input TokenType:K_ID Follow:FOLLOW_K_ID_in_expr412];
   1208 
   1209                     /* ruleRef */
   1210                     [self pushFollow:FOLLOW_expr_in_expr416];
   1211                     e = [self expr];
   1212 
   1213                     [self popFollow];
   1214 
   1215 
   1216 
   1217                     [self match:input TokenType:UP Follow:nil];
   1218 
   1219 
   1220 
   1221                  NSLog(@"assigning %@ to variable %@", (e!=nil?[[input getTokenStream] toStringFromStart:[[input getTreeAdaptor] getTokenStartIndex:[e getStart]]ToEnd:[[input getTreeAdaptor] getTokenStopIndex:[e getStart]]]:0), (K_ID1!=nil?K_ID1.text:nil));
   1222 
   1223 
   1224                 }
   1225                 break;
   1226             case 5 : ;
   1227                 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:63:9: atom // alt
   1228                 {
   1229 
   1230                 /* ruleRef */
   1231                 [self pushFollow:FOLLOW_atom_in_expr429];
   1232                 [self atom];
   1233 
   1234                 [self popFollow];
   1235 
   1236 
   1237 
   1238                 }
   1239                 break;
   1240 
   1241         }
   1242         /* token+rule list labels */
   1243 
   1244     }
   1245     @catch (RecognitionException *re) {
   1246         [self reportError:re];
   1247         [self recover:input Exception:re];
   1248     }
   1249 
   1250     @finally {
   1251         /* ruleScopeCleanUp */
   1252 
   1253     }
   1254     return retval;
   1255 }
   1256 /* $ANTLR end expr */
   1257 
   1258 /*
   1259  * $ANTLR start atom
   1260  * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:66:1: atom : ( K_ID | K_INT );
   1261  */
   1262 - (void) atom
   1263 {
   1264     /* ruleScopeSetUp */
   1265 
   1266     /* ruleDeclarations */
   1267 
   1268     @try {
   1269         /* ruleLabelDefs entry */
   1270 
   1271 
   1272         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g:67:5: ( K_ID | K_INT ) // ruleBlockSingleAlt
   1273         // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCTP.g: // alt
   1274         {
   1275 
   1276         if ((([input LA:1] >= K_ID) && ([input LA:1] <= K_INT))) {
   1277             [input consume];
   1278             [state setIsErrorRecovery:NO];
   1279         } else {
   1280             MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input];
   1281             @throw mse;
   1282         }
   1283 
   1284 
   1285         }
   1286 
   1287         /* token+rule list labels */
   1288 
   1289     }
   1290     @catch (RecognitionException *re) {
   1291         [self reportError:re];
   1292         [self recover:input Exception:re];
   1293     }
   1294 
   1295     @finally {
   1296         /* ruleScopeCleanUp */
   1297 
   1298     }
   1299     return ;
   1300 }
   1301 /* $ANTLR end atom */
   1302 /* ObjC end rules */
   1303 
   1304 @end /* end of SimpleCTP implementation line 692 */
   1305