1/** \file 2 * This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber} 3 * 4 * - From the grammar source file : TreeRewrite.g 5 * - On : 2011-05-06 18:56:28 6 * - for the parser : TreeRewriteParserParser 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 ${project.version} ${buildNumber} TreeRewrite.g 2011-05-06 18:56:28 15 16 17/* ----------------------------------------- 18 * Include the ANTLR3 generated header file. 19 */ 20#import "TreeRewriteParser.h" 21/* ----------------------------------------- */ 22 23 24/* ============================================================================= */ 25/* ============================================================================= 26 * Start of recognizer 27 */ 28 29#pragma mark Bitsets 30static ANTLRBitSet *FOLLOW_INT_in_rule26; 31static const unsigned long long FOLLOW_INT_in_rule26_data[] = { 0x0000000000000010LL}; 32static ANTLRBitSet *FOLLOW_subrule_in_rule28; 33static const unsigned long long FOLLOW_subrule_in_rule28_data[] = { 0x0000000000000002LL}; 34static ANTLRBitSet *FOLLOW_INT_in_subrule53; 35static const unsigned long long FOLLOW_INT_in_subrule53_data[] = { 0x0000000000000002LL}; 36 37 38#pragma mark Dynamic Global Scopes 39 40#pragma mark Dynamic Rule Scopes 41 42#pragma mark Rule Return Scopes start 43@implementation TreeRewriteParser_rule_return /* returnScope */ 44/* AST returnScope.synthesize */ 45@synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ 46+ (TreeRewriteParser_rule_return *)newTreeRewriteParser_rule_return 47{ 48 return [[[TreeRewriteParser_rule_return alloc] init] retain]; 49} 50 51- (id) init 52{ 53 self = [super init]; 54 return self; 55} 56 57/* AST returnScope.methods */ 58- (ANTLRCommonTree *)getTree 59{ 60 return tree; 61} 62 63- (void) setTree:(ANTLRCommonTree *)aTree 64{ 65 if (tree != aTree) { 66 if (tree != nil) [tree release]; 67 if (aTree != nil) [aTree retain]; 68 tree = aTree; 69 } 70} 71 72- (void) dealloc 73{ 74 self.tree = nil; 75 [super dealloc]; 76} 77 78 79 80@end /* end of returnScope implementation */ 81 82 83@implementation TreeRewriteParser_subrule_return /* returnScope */ 84/* AST returnScope.synthesize */ 85@synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ 86+ (TreeRewriteParser_subrule_return *)newTreeRewriteParser_subrule_return 87{ 88 return [[[TreeRewriteParser_subrule_return alloc] init] retain]; 89} 90 91- (id) init 92{ 93 self = [super init]; 94 return self; 95} 96 97/* AST returnScope.methods */ 98- (ANTLRCommonTree *)getTree 99{ 100 return tree; 101} 102 103- (void) setTree:(ANTLRCommonTree *)aTree 104{ 105 if (tree != aTree) { 106 if (tree != nil) [tree release]; 107 if (aTree != nil) [aTree retain]; 108 tree = aTree; 109 } 110} 111 112- (void) dealloc 113{ 114 self.tree = nil; 115 [super dealloc]; 116} 117 118 119 120@end /* end of returnScope implementation */ 121 122 123//#pragma mark Rule return scopes start 124// 125 126#pragma mark Rule return scopes start 127 128@implementation TreeRewriteParser // line 637 129 130/* ObjC start of ruleAttributeScope */ 131#pragma mark Dynamic Rule Scopes 132/* ObjC end of ruleAttributeScope */ 133#pragma mark global Attribute Scopes 134/* ObjC start globalAttributeScope */ 135/* ObjC end globalAttributeScope */ 136/* ObjC start actions.(actionScope).synthesize */ 137/* ObjC end actions.(actionScope).synthesize */ 138/* ObjC start synthesize() */ 139/* AST genericParser.synthesize */ 140/* AST parserProperties */ 141@synthesize treeAdaptor; 142/* ObjC end synthesize() */ 143 144+ (void) initialize 145{ 146 #pragma mark Bitsets 147 FOLLOW_INT_in_rule26 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_rule26_data Count:(NSUInteger)1] retain]; 148 FOLLOW_subrule_in_rule28 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_subrule_in_rule28_data Count:(NSUInteger)1] retain]; 149 FOLLOW_INT_in_subrule53 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_subrule53_data Count:(NSUInteger)1] retain]; 150 151 [ANTLRBaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>", 152 @"INT", @"WS", nil] retain]]; 153 [ANTLRBaseRecognizer setGrammarFileName:@"TreeRewrite.g"]; 154} 155 156+ (TreeRewriteParser *)newTreeRewriteParser:(id<ANTLRTokenStream>)aStream 157{ 158 return [[TreeRewriteParser alloc] initWithTokenStream:aStream]; 159 160 161} 162 163- (id) initWithTokenStream:(id<ANTLRTokenStream>)aStream 164{ 165 self = [super initWithTokenStream:aStream State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:2+1] retain]]; 166 if ( self != nil ) { 167 168 169 /* start of actions-actionScope-init */ 170 /* start of init */ 171 /* AST genericParser.init */ 172 [self setTreeAdaptor:[[ANTLRCommonTreeAdaptor newTreeAdaptor] retain]]; 173 } 174 return self; 175} 176 177- (void) dealloc 178{ 179 /* AST genericParser.dealloc */ 180 [self setTreeAdaptor:nil]; 181 182 [super dealloc]; 183} 184 185/* ObjC start members */ 186/* ObjC end members */ 187/* ObjC start actions.(actionScope).methods */ 188/* ObjC end actions.(actionScope).methods */ 189/* ObjC start methods() */ 190/* AST genericParser.methods */ 191/* AST parserMethods */ 192- (id<ANTLRTreeAdaptor>) getTreeAdaptor 193{ 194 return treeAdaptor; 195} 196 197- (void) setTreeAdaptor:(id<ANTLRTreeAdaptor>)aTreeAdaptor 198{ 199 if (aTreeAdaptor != treeAdaptor) { 200 treeAdaptor = aTreeAdaptor; 201 } 202} 203/* ObjC end methods() */ 204/* ObjC start rules */ 205/* 206 * $ANTLR start rule 207 * TreeRewrite.g:8:1: rule : INT subrule -> ^( subrule INT ) ; 208 */ 209- (TreeRewriteParser_rule_return *) rule 210{ 211 /* my ruleScopeSetUp */ 212 /* Terence's stuff */ 213 214 /* AST ruleDeclarations */ 215 TreeRewriteParser_rule_return * retval = [TreeRewriteParser_rule_return newTreeRewriteParser_rule_return]; 216 [retval setStart:[input LT:1]]; 217 218 219 ANTLRCommonTree *root_0 = nil; 220 221 @try { 222 /* AST ruleLabelDefs */ 223 ANTLRCommonToken *INT1 = nil; 224 TreeRewriteParser_subrule_return * subrule2 = nil ; 225 226 227 ANTLRCommonTree *INT1_tree=nil; 228 ANTLRRewriteRuleTokenStream *stream_INT = 229 [[ANTLRRewriteRuleTokenStream newANTLRRewriteRuleTokenStream:treeAdaptor 230 description:@"token INT"] retain]; 231 ANTLRRewriteRuleSubtreeStream *stream_subrule = 232 [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor 233 description:@"rule subrule"] retain]; 234 // TreeRewrite.g:8:5: ( INT subrule -> ^( subrule INT ) ) // ruleBlockSingleAlt 235 // TreeRewrite.g:8:7: INT subrule // alt 236 { 237 INT1=(ANTLRCommonToken *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_rule26]; 238 [stream_INT addElement:INT1]; 239 240 241 /* ruleRef */ 242 [self pushFollow:FOLLOW_subrule_in_rule28]; 243 subrule2 = [self subrule]; 244 245 [self popFollow]; 246 247 248 [stream_subrule addElement:[subrule2 getTree]]; 249 250 // AST REWRITE 251 // elements: subrule, INT 252 // token labels: 253 // rule labels: retval 254 // token list labels: 255 // rule list labels: 256 // wildcard labels: 257 retval.tree = root_0; 258 259 ANTLRRewriteRuleSubtreeStream *stream_retval = 260 [[ANTLRRewriteRuleSubtreeStream newANTLRRewriteRuleSubtreeStream:treeAdaptor 261 description:@"token retval" element:retval!=nil?[retval getTree]:nil] retain]; 262 263 root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; 264 265 // 8:19: -> ^( subrule INT ) 266 { 267 // TreeRewrite.g:8:22: ^( subrule INT ) 268 { 269 ANTLRCommonTree *root_1 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; 270 root_1 = (ANTLRCommonTree *)[treeAdaptor becomeRoot:(id<ANTLRTree>)[stream_subrule nextNode] old:root_1]; 271 272 // TODO: args: 273 [treeAdaptor addChild: 274 [stream_INT nextNode] 275 toTree:root_1]; 276 277 [treeAdaptor addChild:root_1 toTree:root_0]; 278 } 279 280 } 281 282 283 retval.tree = root_0; 284 285 286 } 287 288 /* ASTParser ruleCleanUp */ 289 /* AST ruleCleanUp */ 290 // token+rule list labels 291 [retval setStop:[input LT:-1]]; 292 293 294 [stream_INT release]; 295 [stream_subrule release]; 296 297 retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0]; 298 [treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken]; 299 300 } 301 @catch (ANTLRRecognitionException *re) { 302 [self reportError:re]; 303 [self recover:input Exception:re]; 304 /* ASTParser rule.setErrorReturnValue */ 305 retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re]; 306 307 } 308 309 @finally { 310 /* Terence's stuff */ 311 312 } 313 return retval; 314} 315/* $ANTLR end rule */ 316 317/* 318 * $ANTLR start subrule 319 * TreeRewrite.g:11:1: subrule : INT ; 320 */ 321- (TreeRewriteParser_subrule_return *) subrule 322{ 323 /* my ruleScopeSetUp */ 324 /* Terence's stuff */ 325 326 /* AST ruleDeclarations */ 327 TreeRewriteParser_subrule_return * retval = [TreeRewriteParser_subrule_return newTreeRewriteParser_subrule_return]; 328 [retval setStart:[input LT:1]]; 329 330 331 ANTLRCommonTree *root_0 = nil; 332 333 @try { 334 /* AST ruleLabelDefs */ 335 ANTLRCommonToken *INT3 = nil; 336 337 ANTLRCommonTree *INT3_tree=nil; 338 339 // TreeRewrite.g:12:5: ( INT ) // ruleBlockSingleAlt 340 // TreeRewrite.g:12:9: INT // alt 341 { 342 root_0 = (ANTLRCommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; 343 344 345 /* ASTParser tokenRef */ 346 INT3=(ANTLRCommonToken *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_subrule53]; 347 INT3_tree = /* ASTParser createNodeFromToken */ 348 (ANTLRCommonTree *)[[treeAdaptor create:INT3] retain] 349 ; 350 [treeAdaptor addChild:INT3_tree toTree:root_0]; 351 352 353 } 354 355 /* ASTParser ruleCleanUp */ 356 /* AST ruleCleanUp */ 357 // token+rule list labels 358 [retval setStop:[input LT:-1]]; 359 360 361 362 retval.tree = (ANTLRCommonTree *)[treeAdaptor rulePostProcessing:root_0]; 363 [treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken]; 364 365 } 366 @catch (ANTLRRecognitionException *re) { 367 [self reportError:re]; 368 [self recover:input Exception:re]; 369 /* ASTParser rule.setErrorReturnValue */ 370 retval.tree = (ANTLRCommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re]; 371 372 } 373 374 @finally { 375 /* Terence's stuff */ 376 377 } 378 return retval; 379} 380/* $ANTLR end subrule */ 381/* ObjC end rules */ 382 383@end /* end of TreeRewriteParser implementation line 692 */ 384