/** \file * This OBJC source file was generated by $ANTLR version 3.4 * * - From the grammar source file : /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g * - On : 2012-02-16 17:42:35 * - for the parser : TreeRewriteParserParser * * Editing it, at least manually, is not wise. * * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com. * * */ // $ANTLR 3.4 /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g 2012-02-16 17:42:35 /* ----------------------------------------- * Include the ANTLR3 generated header file. */ #import "TreeRewriteParser.h" /* ----------------------------------------- */ /* ============================================================================= */ /* ============================================================================= * Start of recognizer */ #pragma mark Bitsets static ANTLRBitSet *FOLLOW_INT_in_rule26; static const unsigned long long FOLLOW_INT_in_rule26_data[] = { 0x0000000000000010LL}; static ANTLRBitSet *FOLLOW_subrule_in_rule28; static const unsigned long long FOLLOW_subrule_in_rule28_data[] = { 0x0000000000000002LL}; static ANTLRBitSet *FOLLOW_INT_in_subrule53; static const unsigned long long FOLLOW_INT_in_subrule53_data[] = { 0x0000000000000002LL}; #pragma mark Dynamic Global globalAttributeScopeImplementation #pragma mark Dynamic Rule Scopes ruleAttributeScopeImplementation #pragma mark Rule Return Scopes returnScopeImplementation @implementation TreeRewriteParser_rule_return /* returnScopeImplementation */ /* AST returnScope.synthesize */ @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ + (TreeRewriteParser_rule_return *)newTreeRewriteParser_rule_return { return [[[TreeRewriteParser_rule_return alloc] init] retain]; } - (id) init { self = [super init]; return self; } /* AST returnScope.methods */ - (CommonTree *)getTree { return tree; } - (void) setTree:(CommonTree *)aTree { if (tree != aTree) { if (tree != nil) [tree release]; if (aTree != nil) [aTree retain]; tree = aTree; } } - (void) dealloc { self.tree = nil; [super dealloc]; } @end /* end of returnScope implementation */ @implementation TreeRewriteParser_subrule_return /* returnScopeImplementation */ /* AST returnScope.synthesize */ @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ + (TreeRewriteParser_subrule_return *)newTreeRewriteParser_subrule_return { return [[[TreeRewriteParser_subrule_return alloc] init] retain]; } - (id) init { self = [super init]; return self; } /* AST returnScope.methods */ - (CommonTree *)getTree { return tree; } - (void) setTree:(CommonTree *)aTree { if (tree != aTree) { if (tree != nil) [tree release]; if (aTree != nil) [aTree retain]; tree = aTree; } } - (void) dealloc { self.tree = nil; [super dealloc]; } @end /* end of returnScope implementation */ @implementation TreeRewriteParser // line 637 /* ObjC start of ruleAttributeScope */ #pragma mark Dynamic Rule Scopes ruleAttributeScope /* ObjC end of ruleAttributeScope */ #pragma mark global Attribute Scopes globalAttributeScope /* ObjC start globalAttributeScope */ /* ObjC end globalAttributeScope */ /* ObjC start actions.(actionScope).synthesize */ /* ObjC start synthesize() */ /* AST genericParser.synthesize */ /* AST parserProperties */ @synthesize treeAdaptor; + (void) initialize { #pragma mark Bitsets FOLLOW_INT_in_rule26 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_rule26_data Count:(NSUInteger)1] retain]; FOLLOW_subrule_in_rule28 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_subrule_in_rule28_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_subrule53 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_subrule53_data Count:(NSUInteger)1] retain]; [BaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"", @"", @"", @"", @"INT", @"WS", nil] retain]]; [BaseRecognizer setGrammarFileName:@"/Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g"]; } + (TreeRewriteParser *)newTreeRewriteParser:(id)aStream { return [[TreeRewriteParser alloc] initWithTokenStream:aStream]; } - (id) initWithTokenStream:(id)aStream { self = [super initWithTokenStream:aStream State:[[RecognizerSharedState newRecognizerSharedStateWithRuleLen:2+1] retain]]; if ( self != nil ) { /* start of actions-actionScope-init */ /* start of init */ /* AST genericParser.init */ [self setTreeAdaptor:[[CommonTreeAdaptor newTreeAdaptor] retain]]; } return self; } - (void) dealloc { /* AST genericParser.dealloc */ [self setTreeAdaptor:nil]; [super dealloc]; } /* ObjC start actions.(actionScope).methods */ /* ObjC end actions.(actionScope).methods */ /* ObjC start methods() */ /* AST genericParser.methods */ /* AST parserMethods */ - (id) getTreeAdaptor { return treeAdaptor; } - (void) setTreeAdaptor:(id)aTreeAdaptor { if (aTreeAdaptor != treeAdaptor) { treeAdaptor = aTreeAdaptor; } } /* ObjC end methods() */ /* ObjC start rules */ /* * $ANTLR start rule * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:8:1: rule : INT subrule -> ^( subrule INT ) ; */ - (TreeRewriteParser_rule_return *) rule { /* ruleScopeSetUp */ /* AST ruleDeclarations */ /* ruleDeclarations */ TreeRewriteParser_rule_return * retval = [TreeRewriteParser_rule_return newTreeRewriteParser_rule_return]; [retval setStart:[input LT:1]]; CommonTree *root_0 = nil; @try { /* AST ruleLabelDefs */ /* ruleLabelDefs entry */ CommonToken *INT1 = nil;TreeRewriteParser_subrule_return * subrule2 = nil ; CommonTree *INT1_tree=nil; RewriteRuleTokenStream *stream_INT = [[RewriteRuleTokenStream newRewriteRuleTokenStream:treeAdaptor description:@"token INT"] retain]; RewriteRuleSubtreeStream *stream_subrule = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"rule subrule"] retain]; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:8:5: ( INT subrule -> ^( subrule INT ) ) // ruleBlockSingleAlt // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:8:7: INT subrule // alt { INT1=(CommonToken *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_rule26]; [stream_INT addElement:INT1]; /* ruleRef */ [self pushFollow:FOLLOW_subrule_in_rule28]; subrule2 = [self subrule]; [self popFollow]; [stream_subrule addElement:[subrule2 getTree]]; // AST REWRITE // elements: subrule, INT // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.tree = root_0; RewriteRuleSubtreeStream *stream_retval = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"token retval" element:retval!=nil?[retval getTree]:nil] retain]; root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; // 8:19: -> ^( subrule INT ) { // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:8:22: ^( subrule INT ) { CommonTree *root_1 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; root_1 = (CommonTree *)[treeAdaptor becomeRoot:(id)[stream_subrule nextNode] old:root_1]; // TODO: args: [treeAdaptor addChild: [stream_INT nextNode] toTree:root_1]; [treeAdaptor addChild:root_1 toTree:root_0]; } } retval.tree = root_0; } /* ASTParser ruleCleanUp */ /* AST ruleCleanUp */ /* token+rule list labels */ [retval setStop:[input LT:-1]]; [stream_INT release]; [stream_subrule release]; retval.tree = (CommonTree *)[treeAdaptor rulePostProcessing:root_0]; [treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken]; } @catch (RecognitionException *re) { [self reportError:re]; [self recover:input Exception:re]; /* ASTParser rule.setErrorReturnValue */ retval.tree = (CommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re]; } @finally { /* ruleScopeCleanUp */ } return retval; } /* $ANTLR end rule */ /* * $ANTLR start subrule * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:11:1: subrule : INT ; */ - (TreeRewriteParser_subrule_return *) subrule { /* ruleScopeSetUp */ /* AST ruleDeclarations */ /* ruleDeclarations */ TreeRewriteParser_subrule_return * retval = [TreeRewriteParser_subrule_return newTreeRewriteParser_subrule_return]; [retval setStart:[input LT:1]]; CommonTree *root_0 = nil; @try { /* AST ruleLabelDefs */ /* ruleLabelDefs entry */ CommonToken *INT3 = nil; CommonTree *INT3_tree=nil; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:12:5: ( INT ) // ruleBlockSingleAlt // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/treerewrite/TreeRewrite.g:12:9: INT // alt { root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; /* ASTParser tokenRef */ INT3=(CommonToken *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_subrule53]; INT3_tree = /* ASTParser createNodeFromToken */ (CommonTree *)[[treeAdaptor create:INT3] retain] ; [treeAdaptor addChild:INT3_tree toTree:root_0]; } /* ASTParser ruleCleanUp */ /* AST ruleCleanUp */ /* token+rule list labels */ [retval setStop:[input LT:-1]]; retval.tree = (CommonTree *)[treeAdaptor rulePostProcessing:root_0]; [treeAdaptor setTokenBoundaries:retval.tree From:retval.start To:retval.stopToken]; } @catch (RecognitionException *re) { [self reportError:re]; [self recover:input Exception:re]; /* ASTParser rule.setErrorReturnValue */ retval.tree = (CommonTree *)[treeAdaptor errorNode:input From:retval.start To:[input LT:-1] Exception:re]; } @finally { /* ruleScopeCleanUp */ } return retval; } /* $ANTLR end subrule */ /* ObjC end rules */ @end /* end of TreeRewriteParser implementation line 692 */