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/SimpleCWalker.g 5 * - On : 2012-02-16 17:56:35 6 * - for the tree parser : SimpleCWalkerTreeParser 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/SimpleCWalker.g 2012-02-16 17:56:35 15 16 17/* ----------------------------------------- 18 * Include the ANTLR3 generated header file. 19 */ 20#import "SimpleCWalker.h" 21/* ----------------------------------------- */ 22 23 24/* ============================================================================= */ 25/* ============================================================================= 26 * Start of recognizer 27 */ 28 29#pragma mark Bitsets 30static ANTLRBitSet *FOLLOW_declaration_in_program56; 31static const unsigned long long FOLLOW_declaration_in_program56_data[] = { 0x00000000020000C2LL}; 32static ANTLRBitSet *FOLLOW_variable_in_declaration76; 33static const unsigned long long FOLLOW_variable_in_declaration76_data[] = { 0x0000000000000002LL}; 34static ANTLRBitSet *FOLLOW_FUNC_DECL_in_declaration87; 35static const unsigned long long FOLLOW_FUNC_DECL_in_declaration87_data[] = { 0x0000000000000004LL}; 36static ANTLRBitSet *FOLLOW_functionHeader_in_declaration89; 37static const unsigned long long FOLLOW_functionHeader_in_declaration89_data[] = { 0x0000000000000008LL}; 38static ANTLRBitSet *FOLLOW_FUNC_DEF_in_declaration101; 39static const unsigned long long FOLLOW_FUNC_DEF_in_declaration101_data[] = { 0x0000000000000004LL}; 40static ANTLRBitSet *FOLLOW_functionHeader_in_declaration103; 41static const unsigned long long FOLLOW_functionHeader_in_declaration103_data[] = { 0x0000000000000020LL}; 42static ANTLRBitSet *FOLLOW_block_in_declaration105; 43static const unsigned long long FOLLOW_block_in_declaration105_data[] = { 0x0000000000000008LL}; 44static ANTLRBitSet *FOLLOW_VAR_DEF_in_variable126; 45static const unsigned long long FOLLOW_VAR_DEF_in_variable126_data[] = { 0x0000000000000004LL}; 46static ANTLRBitSet *FOLLOW_type_in_variable128; 47static const unsigned long long FOLLOW_type_in_variable128_data[] = { 0x0000000000004000LL}; 48static ANTLRBitSet *FOLLOW_declarator_in_variable130; 49static const unsigned long long FOLLOW_declarator_in_variable130_data[] = { 0x0000000000000008LL}; 50static ANTLRBitSet *FOLLOW_K_ID_in_declarator150; 51static const unsigned long long FOLLOW_K_ID_in_declarator150_data[] = { 0x0000000000000002LL}; 52static ANTLRBitSet *FOLLOW_FUNC_HDR_in_functionHeader171; 53static const unsigned long long FOLLOW_FUNC_HDR_in_functionHeader171_data[] = { 0x0000000000000004LL}; 54static ANTLRBitSet *FOLLOW_type_in_functionHeader173; 55static const unsigned long long FOLLOW_type_in_functionHeader173_data[] = { 0x0000000000004000LL}; 56static ANTLRBitSet *FOLLOW_K_ID_in_functionHeader175; 57static const unsigned long long FOLLOW_K_ID_in_functionHeader175_data[] = { 0x0000000000000010LL}; 58static ANTLRBitSet *FOLLOW_formalParameter_in_functionHeader177; 59static const unsigned long long FOLLOW_formalParameter_in_functionHeader177_data[] = { 0x0000000000000018LL}; 60static ANTLRBitSet *FOLLOW_ARG_DEF_in_formalParameter199; 61static const unsigned long long FOLLOW_ARG_DEF_in_formalParameter199_data[] = { 0x0000000000000004LL}; 62static ANTLRBitSet *FOLLOW_type_in_formalParameter201; 63static const unsigned long long FOLLOW_type_in_formalParameter201_data[] = { 0x0000000000004000LL}; 64static ANTLRBitSet *FOLLOW_declarator_in_formalParameter203; 65static const unsigned long long FOLLOW_declarator_in_formalParameter203_data[] = { 0x0000000000000008LL}; 66static ANTLRBitSet *FOLLOW_BLOCK_in_block283; 67static const unsigned long long FOLLOW_BLOCK_in_block283_data[] = { 0x0000000000000004LL}; 68static ANTLRBitSet *FOLLOW_variable_in_block285; 69static const unsigned long long FOLLOW_variable_in_block285_data[] = { 0x000000000218F828LL}; 70static ANTLRBitSet *FOLLOW_stat_in_block288; 71static const unsigned long long FOLLOW_stat_in_block288_data[] = { 0x000000000018F828LL}; 72static ANTLRBitSet *FOLLOW_forStat_in_stat302; 73static const unsigned long long FOLLOW_forStat_in_stat302_data[] = { 0x0000000000000002LL}; 74static ANTLRBitSet *FOLLOW_expr_in_stat310; 75static const unsigned long long FOLLOW_expr_in_stat310_data[] = { 0x0000000000000002LL}; 76static ANTLRBitSet *FOLLOW_block_in_stat318; 77static const unsigned long long FOLLOW_block_in_stat318_data[] = { 0x0000000000000002LL}; 78static ANTLRBitSet *FOLLOW_K_FOR_in_forStat338; 79static const unsigned long long FOLLOW_K_FOR_in_forStat338_data[] = { 0x0000000000000004LL}; 80static ANTLRBitSet *FOLLOW_expr_in_forStat340; 81static const unsigned long long FOLLOW_expr_in_forStat340_data[] = { 0x000000000018D800LL}; 82static ANTLRBitSet *FOLLOW_expr_in_forStat342; 83static const unsigned long long FOLLOW_expr_in_forStat342_data[] = { 0x000000000018D800LL}; 84static ANTLRBitSet *FOLLOW_expr_in_forStat344; 85static const unsigned long long FOLLOW_expr_in_forStat344_data[] = { 0x0000000000000020LL}; 86static ANTLRBitSet *FOLLOW_block_in_forStat346; 87static const unsigned long long FOLLOW_block_in_forStat346_data[] = { 0x0000000000000008LL}; 88static ANTLRBitSet *FOLLOW_K_EQEQ_in_expr362; 89static const unsigned long long FOLLOW_K_EQEQ_in_expr362_data[] = { 0x0000000000000004LL}; 90static ANTLRBitSet *FOLLOW_expr_in_expr364; 91static const unsigned long long FOLLOW_expr_in_expr364_data[] = { 0x000000000018D800LL}; 92static ANTLRBitSet *FOLLOW_expr_in_expr366; 93static const unsigned long long FOLLOW_expr_in_expr366_data[] = { 0x0000000000000008LL}; 94static ANTLRBitSet *FOLLOW_K_LT_in_expr378; 95static const unsigned long long FOLLOW_K_LT_in_expr378_data[] = { 0x0000000000000004LL}; 96static ANTLRBitSet *FOLLOW_expr_in_expr380; 97static const unsigned long long FOLLOW_expr_in_expr380_data[] = { 0x000000000018D800LL}; 98static ANTLRBitSet *FOLLOW_expr_in_expr382; 99static const unsigned long long FOLLOW_expr_in_expr382_data[] = { 0x0000000000000008LL}; 100static ANTLRBitSet *FOLLOW_K_PLUS_in_expr394; 101static const unsigned long long FOLLOW_K_PLUS_in_expr394_data[] = { 0x0000000000000004LL}; 102static ANTLRBitSet *FOLLOW_expr_in_expr396; 103static const unsigned long long FOLLOW_expr_in_expr396_data[] = { 0x000000000018D800LL}; 104static ANTLRBitSet *FOLLOW_expr_in_expr398; 105static const unsigned long long FOLLOW_expr_in_expr398_data[] = { 0x0000000000000008LL}; 106static ANTLRBitSet *FOLLOW_K_EQ_in_expr410; 107static const unsigned long long FOLLOW_K_EQ_in_expr410_data[] = { 0x0000000000000004LL}; 108static ANTLRBitSet *FOLLOW_K_ID_in_expr412; 109static const unsigned long long FOLLOW_K_ID_in_expr412_data[] = { 0x000000000018D800LL}; 110static ANTLRBitSet *FOLLOW_expr_in_expr416; 111static const unsigned long long FOLLOW_expr_in_expr416_data[] = { 0x0000000000000008LL}; 112static ANTLRBitSet *FOLLOW_atom_in_expr429; 113static 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{ 123return [[Symbols_Scope alloc] init]; 124} 125 126- (id) init 127{ 128self = [super init]; 129return self; 130} 131 132/* start of iterate get and set functions */ 133- (CommonTree *)gettree { return( tree ); } 134- (void)settree:(CommonTree *)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 SimpleCWalker_expr_return /* returnScopeImplementation */ 145 /* start of synthesize -- OBJC-Line 1837 */ 146+ (SimpleCWalker_expr_return *)newSimpleCWalker_expr_return 147{ 148return [[[SimpleCWalker_expr_return alloc] init] retain]; 149} 150 151- (id) init 152{ 153self = [super init]; 154return self; 155} 156 157 158 159@end /* end of returnScope implementation */ 160 161 162 163@implementation SimpleCWalker // 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 */ 170static _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/SimpleCWalker.g"]; 228} 229 230+ (SimpleCWalker *)newSimpleCWalker:(id<TreeNodeStream>)aStream 231{ 232 return [[SimpleCWalker 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/SimpleCWalker.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/SimpleCWalker.g:14:5: ( ( declaration )+ ) // ruleBlockSingleAlt 278 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.g:14:9: ( declaration )+ // alt 279 { 280 281 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.g:24:5: ( ^( VAR_DEF type declarator ) ) // ruleBlockSingleAlt 478 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.g:28:5: ( K_ID ) // ruleBlockSingleAlt 538 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.g:32:5: ( ^( FUNC_HDR type K_ID ( formalParameter )+ ) ) // ruleBlockSingleAlt 576 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.g:36:5: ( ^( ARG_DEF type declarator ) ) // ruleBlockSingleAlt 668 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.g:47:5: ( ^( BLOCK ( variable )* ( stat )* ) ) // ruleBlockSingleAlt 773 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.g:56:5: ( ^( K_FOR expr expr expr block ) ) // ruleBlockSingleAlt 990 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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/SimpleCWalker.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- (SimpleCWalker_expr_return *) expr 1056{ 1057 /* ruleScopeSetUp */ 1058 1059 /* ruleDeclarations */ 1060 SimpleCWalker_expr_return * retval = [SimpleCWalker_expr_return newSimpleCWalker_expr_return]; 1061 [retval setStart:[input LT:1]]; 1062 1063 1064 @try { 1065 /* ruleLabelDefs entry */ 1066 CommonTree *K_ID1 = nil;SimpleCWalker_expr_return * e = nil ; 1067 1068 1069 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.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=(CommonTree *)[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/SimpleCWalker.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/SimpleCWalker.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/SimpleCWalker.g:67:5: ( K_ID | K_INT ) // ruleBlockSingleAlt 1273 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/simplecTreeParser/SimpleCWalker.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 SimpleCWalker implementation line 692 */ 1305