/** \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/polydiff/Simplifier.g * - On : 2012-02-16 18:11:30 * - for the tree parser : SimplifierTreeParser * * 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/polydiff/Simplifier.g 2012-02-16 18:11:30 /* ----------------------------------------- * Include the ANTLR3 generated header file. */ #import "Simplifier.h" /* ----------------------------------------- */ /* ============================================================================= */ /* ============================================================================= * Start of recognizer */ #pragma mark Bitsets static ANTLRBitSet *FOLLOW_8_in_poly52; static const unsigned long long FOLLOW_8_in_poly52_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_INT_in_poly56; static const unsigned long long FOLLOW_INT_in_poly56_data[] = { 0x0000000000000020LL}; static ANTLRBitSet *FOLLOW_INT_in_poly60; static const unsigned long long FOLLOW_INT_in_poly60_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_8_in_poly73; static const unsigned long long FOLLOW_8_in_poly73_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_8_in_poly76; static const unsigned long long FOLLOW_8_in_poly76_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_INT_in_poly80; static const unsigned long long FOLLOW_INT_in_poly80_data[] = { 0x0000000000000370LL}; static ANTLRBitSet *FOLLOW_poly_in_poly84; static const unsigned long long FOLLOW_poly_in_poly84_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_INT_in_poly89; static const unsigned long long FOLLOW_INT_in_poly89_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_8_in_poly117; static const unsigned long long FOLLOW_8_in_poly117_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_8_in_poly120; static const unsigned long long FOLLOW_8_in_poly120_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_poly_in_poly124; static const unsigned long long FOLLOW_poly_in_poly124_data[] = { 0x0000000000000020LL}; static ANTLRBitSet *FOLLOW_INT_in_poly128; static const unsigned long long FOLLOW_INT_in_poly128_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_INT_in_poly133; static const unsigned long long FOLLOW_INT_in_poly133_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_8_in_poly161; static const unsigned long long FOLLOW_8_in_poly161_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_poly_in_poly165; static const unsigned long long FOLLOW_poly_in_poly165_data[] = { 0x0000000000000370LL}; static ANTLRBitSet *FOLLOW_poly_in_poly169; static const unsigned long long FOLLOW_poly_in_poly169_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_MULT_in_poly216; static const unsigned long long FOLLOW_MULT_in_poly216_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_INT_in_poly218; static const unsigned long long FOLLOW_INT_in_poly218_data[] = { 0x0000000000000370LL}; static ANTLRBitSet *FOLLOW_poly_in_poly220; static const unsigned long long FOLLOW_poly_in_poly220_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_9_in_poly251; static const unsigned long long FOLLOW_9_in_poly251_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_ID_in_poly253; static const unsigned long long FOLLOW_ID_in_poly253_data[] = { 0x0000000000000020LL}; static ANTLRBitSet *FOLLOW_INT_in_poly257; static const unsigned long long FOLLOW_INT_in_poly257_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_INT_in_poly302; static const unsigned long long FOLLOW_INT_in_poly302_data[] = { 0x0000000000000002LL}; static ANTLRBitSet *FOLLOW_ID_in_poly307; static const unsigned long long FOLLOW_ID_in_poly307_data[] = { 0x0000000000000002LL}; static ANTLRBitSet *FOLLOW_8_in_synpred1_Simplifier52; static const unsigned long long FOLLOW_8_in_synpred1_Simplifier52_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_INT_in_synpred1_Simplifier56; static const unsigned long long FOLLOW_INT_in_synpred1_Simplifier56_data[] = { 0x0000000000000020LL}; static ANTLRBitSet *FOLLOW_INT_in_synpred1_Simplifier60; static const unsigned long long FOLLOW_INT_in_synpred1_Simplifier60_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_8_in_synpred2_Simplifier73; static const unsigned long long FOLLOW_8_in_synpred2_Simplifier73_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_8_in_synpred2_Simplifier76; static const unsigned long long FOLLOW_8_in_synpred2_Simplifier76_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_INT_in_synpred2_Simplifier80; static const unsigned long long FOLLOW_INT_in_synpred2_Simplifier80_data[] = { 0x0000000000000370LL}; static ANTLRBitSet *FOLLOW_poly_in_synpred2_Simplifier84; static const unsigned long long FOLLOW_poly_in_synpred2_Simplifier84_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_INT_in_synpred2_Simplifier89; static const unsigned long long FOLLOW_INT_in_synpred2_Simplifier89_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_8_in_synpred3_Simplifier117; static const unsigned long long FOLLOW_8_in_synpred3_Simplifier117_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_8_in_synpred3_Simplifier120; static const unsigned long long FOLLOW_8_in_synpred3_Simplifier120_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_poly_in_synpred3_Simplifier124; static const unsigned long long FOLLOW_poly_in_synpred3_Simplifier124_data[] = { 0x0000000000000020LL}; static ANTLRBitSet *FOLLOW_INT_in_synpred3_Simplifier128; static const unsigned long long FOLLOW_INT_in_synpred3_Simplifier128_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_INT_in_synpred3_Simplifier133; static const unsigned long long FOLLOW_INT_in_synpred3_Simplifier133_data[] = { 0x0000000000000008LL}; static ANTLRBitSet *FOLLOW_8_in_synpred4_Simplifier161; static const unsigned long long FOLLOW_8_in_synpred4_Simplifier161_data[] = { 0x0000000000000004LL}; static ANTLRBitSet *FOLLOW_poly_in_synpred4_Simplifier165; static const unsigned long long FOLLOW_poly_in_synpred4_Simplifier165_data[] = { 0x0000000000000370LL}; static ANTLRBitSet *FOLLOW_poly_in_synpred4_Simplifier169; static const unsigned long long FOLLOW_poly_in_synpred4_Simplifier169_data[] = { 0x0000000000000008LL}; #pragma mark Dynamic Global globalAttributeScopeImplementation #pragma mark Dynamic Rule Scopes ruleAttributeScopeImplementation #pragma mark Rule Return Scopes returnScopeImplementation @implementation Simplifier_poly_return /* returnScopeImplementation */ /* AST returnScope.synthesize */ @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ + (Simplifier_poly_return *)newSimplifier_poly_return { return [[[Simplifier_poly_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 Simplifier_synpred1_Simplifier_return /* returnScopeImplementation */ /* AST returnScope.synthesize */ @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ + (Simplifier_synpred1_Simplifier_return *)newSimplifier_synpred1_Simplifier_return { return [[[Simplifier_synpred1_Simplifier_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 Simplifier_synpred2_Simplifier_return /* returnScopeImplementation */ /* AST returnScope.synthesize */ @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ + (Simplifier_synpred2_Simplifier_return *)newSimplifier_synpred2_Simplifier_return { return [[[Simplifier_synpred2_Simplifier_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 Simplifier_synpred3_Simplifier_return /* returnScopeImplementation */ /* AST returnScope.synthesize */ @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ + (Simplifier_synpred3_Simplifier_return *)newSimplifier_synpred3_Simplifier_return { return [[[Simplifier_synpred3_Simplifier_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 Simplifier_synpred4_Simplifier_return /* returnScopeImplementation */ /* AST returnScope.synthesize */ @synthesize tree; /* start of synthesize -- OBJC-Line 1837 */ + (Simplifier_synpred4_Simplifier_return *)newSimplifier_synpred4_Simplifier_return { return [[[Simplifier_synpred4_Simplifier_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 Simplifier // 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_8_in_poly52 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_poly52_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly56 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly56_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly60 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly60_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_poly73 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_poly73_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_poly76 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_poly76_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly80 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly80_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_poly84 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_poly84_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly89 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly89_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_poly117 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_poly117_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_poly120 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_poly120_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_poly124 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_poly124_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly128 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly128_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly133 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly133_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_poly161 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_poly161_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_poly165 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_poly165_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_poly169 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_poly169_data Count:(NSUInteger)1] retain]; FOLLOW_MULT_in_poly216 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_MULT_in_poly216_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly218 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly218_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_poly220 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_poly220_data Count:(NSUInteger)1] retain]; FOLLOW_9_in_poly251 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_9_in_poly251_data Count:(NSUInteger)1] retain]; FOLLOW_ID_in_poly253 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_ID_in_poly253_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly257 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly257_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_poly302 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_poly302_data Count:(NSUInteger)1] retain]; FOLLOW_ID_in_poly307 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_ID_in_poly307_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_synpred1_Simplifier52 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_synpred1_Simplifier52_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_synpred1_Simplifier56 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_synpred1_Simplifier56_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_synpred1_Simplifier60 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_synpred1_Simplifier60_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_synpred2_Simplifier73 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_synpred2_Simplifier73_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_synpred2_Simplifier76 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_synpred2_Simplifier76_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_synpred2_Simplifier80 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_synpred2_Simplifier80_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_synpred2_Simplifier84 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_synpred2_Simplifier84_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_synpred2_Simplifier89 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_synpred2_Simplifier89_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_synpred3_Simplifier117 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_synpred3_Simplifier117_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_synpred3_Simplifier120 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_synpred3_Simplifier120_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_synpred3_Simplifier124 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_synpred3_Simplifier124_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_synpred3_Simplifier128 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_synpred3_Simplifier128_data Count:(NSUInteger)1] retain]; FOLLOW_INT_in_synpred3_Simplifier133 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_INT_in_synpred3_Simplifier133_data Count:(NSUInteger)1] retain]; FOLLOW_8_in_synpred4_Simplifier161 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_8_in_synpred4_Simplifier161_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_synpred4_Simplifier165 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_synpred4_Simplifier165_data Count:(NSUInteger)1] retain]; FOLLOW_poly_in_synpred4_Simplifier169 = [[ANTLRBitSet newBitSetWithBits:(const unsigned long long *)FOLLOW_poly_in_synpred4_Simplifier169_data Count:(NSUInteger)1] retain]; [BaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"", @"", @"", @"", @"ID", @"INT", @"MULT", @"WS", @"'+'", @"'^'", nil] retain]]; [BaseRecognizer setGrammarFileName:@"/Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g"]; SEL synpred2_SimplifierSelector = @selector(synpred2_Simplifier_fragment); SEL synpred1_SimplifierSelector = @selector(synpred1_Simplifier_fragment); SEL synpred4_SimplifierSelector = @selector(synpred4_Simplifier_fragment); SEL synpred3_SimplifierSelector = @selector(synpred3_Simplifier_fragment); } + (Simplifier *)newSimplifier:(id)aStream { return [[Simplifier alloc] initWithStream:aStream]; } - (id) initWithStream:(id)aStream { self = [super initWithStream:aStream State:[[RecognizerSharedState newRecognizerSharedStateWithRuleLen:8+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 poly * /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:16:1: poly : ( ^( '+' a= INT b= INT ) -> INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] | ^( '+' ^( '+' a= INT p= poly ) b= INT ) -> ^( '+' $p INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] ) | ^( '+' ^( '+' p= poly a= INT ) b= INT ) -> ^( '+' $p INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] ) | ^( '+' p= poly q= poly ) -> { [[$p.tree toStringTree] isEqualToString:@\"0\"] }? $q -> { [[$q.tree toStringTree] isEqualToString:@\"0\"] }? $p -> ^( '+' $p $q) | ^( MULT INT poly ) -> {$INT.int==1}? poly -> ^( MULT INT poly ) | ^( '^' ID e= INT ) -> {$e.int==1}? ID -> {$e.int==0}? INT[@\"1\"] -> ^( '^' ID INT ) | INT | ID ); */ - (Simplifier_poly_return *) poly { /* ruleScopeSetUp */ /* ASTTreeParser ruleDeclarations */ /* AST ruleDeclarations */ /* ruleDeclarations */ Simplifier_poly_return * retval = [Simplifier_poly_return newSimplifier_poly_return]; [retval setStart:[input LT:1]]; CommonTree *root_0 = nil; CommonTree *_first_0 = nil; CommonTree *_last = nil; @try { /* AST ruleLabelDefs */ /* ruleLabelDefs entry */ CommonTree *a = nil; CommonTree *b = nil; CommonTree *e = nil; CommonTree *char_literal1 = nil; CommonTree *char_literal2 = nil; CommonTree *char_literal3 = nil; CommonTree *char_literal4 = nil; CommonTree *char_literal5 = nil; CommonTree *char_literal6 = nil; CommonTree *MULT7 = nil; CommonTree *INT8 = nil; CommonTree *char_literal10 = nil; CommonTree *ID11 = nil; CommonTree *INT12 = nil; CommonTree *ID13 = nil;Simplifier_poly_return * p = nil ; Simplifier_poly_return * q = nil ; Simplifier_poly_return * poly9 = nil ; CommonTree *a_tree=nil; CommonTree *b_tree=nil; CommonTree *e_tree=nil; CommonTree *char_literal1_tree=nil; CommonTree *char_literal2_tree=nil; CommonTree *char_literal3_tree=nil; CommonTree *char_literal4_tree=nil; CommonTree *char_literal5_tree=nil; CommonTree *char_literal6_tree=nil; CommonTree *MULT7_tree=nil; CommonTree *INT8_tree=nil; CommonTree *char_literal10_tree=nil; CommonTree *ID11_tree=nil; CommonTree *INT12_tree=nil; CommonTree *ID13_tree=nil; RewriteRuleTokenStream *stream_INT = [[RewriteRuleNodeStream newRewriteRuleNodeStream:treeAdaptor description:@"token INT"] retain]; RewriteRuleTokenStream *stream_MULT = [[RewriteRuleNodeStream newRewriteRuleNodeStream:treeAdaptor description:@"token MULT"] retain]; RewriteRuleTokenStream *stream_ID = [[RewriteRuleNodeStream newRewriteRuleNodeStream:treeAdaptor description:@"token ID"] retain]; RewriteRuleTokenStream *stream_9 = [[RewriteRuleNodeStream newRewriteRuleNodeStream:treeAdaptor description:@"token 9"] retain]; RewriteRuleTokenStream *stream_8 = [[RewriteRuleNodeStream newRewriteRuleNodeStream:treeAdaptor description:@"token 8"] retain]; RewriteRuleSubtreeStream *stream_poly = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"rule poly"] retain]; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:16:5: ( ^( '+' a= INT b= INT ) -> INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] | ^( '+' ^( '+' a= INT p= poly ) b= INT ) -> ^( '+' $p INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] ) | ^( '+' ^( '+' p= poly a= INT ) b= INT ) -> ^( '+' $p INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] ) | ^( '+' p= poly q= poly ) -> { [[$p.tree toStringTree] isEqualToString:@\"0\"] }? $q -> { [[$q.tree toStringTree] isEqualToString:@\"0\"] }? $p -> ^( '+' $p $q) | ^( MULT INT poly ) -> {$INT.int==1}? poly -> ^( MULT INT poly ) | ^( '^' ID e= INT ) -> {$e.int==1}? ID -> {$e.int==0}? INT[@\"1\"] -> ^( '^' ID INT ) | INT | ID ) //ruleblock NSInteger alt1=8; unichar charLA1 = [input LA:1]; switch (charLA1) { case 8: ; { NSInteger LA1_1 = [input LA:2]; if ( ([self evaluateSyntacticPredicate:@selector(synpred1_Simplifier_fragment)]) ) { alt1=1; } else if ( ([self evaluateSyntacticPredicate:@selector(synpred2_Simplifier_fragment)]) ) { alt1=2; } else if ( ([self evaluateSyntacticPredicate:@selector(synpred3_Simplifier_fragment)]) ) { alt1=3; } else if ( ([self evaluateSyntacticPredicate:@selector(synpred4_Simplifier_fragment)]) ) { alt1=4; } else { if ( state.backtracking > 0 ) { state.failed = YES; return retval; } NoViableAltException *nvae = [NoViableAltException newException:1 state:1 stream:input]; nvae.c = LA1_1; @throw nvae; } } break; case MULT: ; { alt1=5; } break; case 9: ; { alt1=6; } break; case INT: ; { alt1=7; } break; case ID: ; { alt1=8; } break; default: ; if ( state.backtracking > 0 ) { state.failed = YES; return retval; } NoViableAltException *nvae = [NoViableAltException newException:1 state:0 stream:input]; nvae.c = charLA1; @throw nvae; } switch (alt1) { case 1 : ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:16:7: ^( '+' a= INT b= INT ) // alt { /* ASTTreeParser tree */ _last = (CommonTree *)[input LT:1]; { CommonTree *_save_last_1 = _last; CommonTree *_first_1 = nil; CommonTree *root_1 = [[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; char_literal1=(CommonTree *)[self match:input TokenType:8 Follow:FOLLOW_8_in_poly52]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_8 addElement:char_literal1]; [self match:input TokenType:TokenTypeDOWN Follow:nil]; if ( state.failed ) return retval; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; a=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly56]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_INT addElement:a]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; b=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly60]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_INT addElement:b]; [self match:input TokenType:TokenTypeUP Follow:nil]; if ( state.failed ) return retval; [treeAdaptor addChild:root_1 toTree:root_0]; _last = _save_last_1; } // AST REWRITE // elements: INT // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking == 0 ) { 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]; // 16:26: -> INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] { [treeAdaptor addChild: [[treeAdaptor createTree:INT FromToken:[NSString stringWithFormat:@"%d", ((a!=nil?[a.text integerValue]:0)+(b!=nil?[b.text integerValue]:0))] Text:@"INT"] retain] toTree:root_0]; } retval.tree = root_0; } } break; case 2 : ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:18:4: ^( '+' ^( '+' a= INT p= poly ) b= INT ) // alt { /* ASTTreeParser tree */ _last = (CommonTree *)[input LT:1]; { CommonTree *_save_last_1 = _last; CommonTree *_first_1 = nil; CommonTree *root_1 = [[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; char_literal2=(CommonTree *)[self match:input TokenType:8 Follow:FOLLOW_8_in_poly73]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_8 addElement:char_literal2]; [self match:input TokenType:TokenTypeDOWN Follow:nil]; if ( state.failed ) return retval; /* ASTTreeParser tree */ _last = (CommonTree *)[input LT:1]; { CommonTree *_save_last_2 = _last; CommonTree *_first_2 = nil; CommonTree *root_2 = [[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; char_literal3=(CommonTree *)[self match:input TokenType:8 Follow:FOLLOW_8_in_poly76]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_8 addElement:char_literal3]; [self match:input TokenType:TokenTypeDOWN Follow:nil]; if ( state.failed ) return retval; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; a=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly80]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_INT addElement:a]; /* ASTTreeParser ruleRefTrack */ _last = (CommonTree *)[input LT:1]; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_poly84]; p = [self poly]; [self popFollow]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_poly addElement:[p getTree]]; [self match:input TokenType:TokenTypeUP Follow:nil]; if ( state.failed ) return retval; [treeAdaptor addChild:root_2 toTree:root_1]; _last = _save_last_2; } /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; b=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly89]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_INT addElement:b]; [self match:input TokenType:TokenTypeUP Follow:nil]; if ( state.failed ) return retval; [treeAdaptor addChild:root_1 toTree:root_0]; _last = _save_last_1; } // AST REWRITE // elements: INT, p, 8 // token labels: // rule labels: retval, p // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking == 0 ) { retval.tree = root_0; RewriteRuleSubtreeStream *stream_retval = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"token retval" element:retval!=nil?[retval getTree]:nil] retain]; RewriteRuleSubtreeStream *stream_p = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"token p" element:p!=nil?[p getTree]:nil] retain]; root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; // 19:8: -> ^( '+' $p INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] ) { // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:19:11: ^( '+' $p INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] ) { CommonTree *root_1 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; root_1 = (CommonTree *)[treeAdaptor becomeRoot:/* ASTTreeParser createRewriteNodeFromElement */ [stream_8 nextNode] old:root_1]; [treeAdaptor addChild:[stream_p nextTree] toTree:root_1]; [treeAdaptor addChild: [[treeAdaptor createTree:INT FromToken:[NSString stringWithFormat:@"%d", ((a!=nil?[a.text integerValue]:0)+(b!=nil?[b.text integerValue]:0))] Text:@"INT"] retain] toTree:root_1]; [treeAdaptor addChild:root_1 toTree:root_0]; } } retval.tree = root_0; } } break; case 3 : ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:21:4: ^( '+' ^( '+' p= poly a= INT ) b= INT ) // alt { /* ASTTreeParser tree */ _last = (CommonTree *)[input LT:1]; { CommonTree *_save_last_1 = _last; CommonTree *_first_1 = nil; CommonTree *root_1 = [[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; char_literal4=(CommonTree *)[self match:input TokenType:8 Follow:FOLLOW_8_in_poly117]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_8 addElement:char_literal4]; [self match:input TokenType:TokenTypeDOWN Follow:nil]; if ( state.failed ) return retval; /* ASTTreeParser tree */ _last = (CommonTree *)[input LT:1]; { CommonTree *_save_last_2 = _last; CommonTree *_first_2 = nil; CommonTree *root_2 = [[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; char_literal5=(CommonTree *)[self match:input TokenType:8 Follow:FOLLOW_8_in_poly120]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_8 addElement:char_literal5]; [self match:input TokenType:TokenTypeDOWN Follow:nil]; if ( state.failed ) return retval; /* ASTTreeParser ruleRefTrack */ _last = (CommonTree *)[input LT:1]; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_poly124]; p = [self poly]; [self popFollow]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_poly addElement:[p getTree]]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; a=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly128]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_INT addElement:a]; [self match:input TokenType:TokenTypeUP Follow:nil]; if ( state.failed ) return retval; [treeAdaptor addChild:root_2 toTree:root_1]; _last = _save_last_2; } /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; b=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly133]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_INT addElement:b]; [self match:input TokenType:TokenTypeUP Follow:nil]; if ( state.failed ) return retval; [treeAdaptor addChild:root_1 toTree:root_0]; _last = _save_last_1; } // AST REWRITE // elements: INT, 8, p // token labels: // rule labels: retval, p // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking == 0 ) { retval.tree = root_0; RewriteRuleSubtreeStream *stream_retval = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"token retval" element:retval!=nil?[retval getTree]:nil] retain]; RewriteRuleSubtreeStream *stream_p = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"token p" element:p!=nil?[p getTree]:nil] retain]; root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; // 22:8: -> ^( '+' $p INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] ) { // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:22:11: ^( '+' $p INT[[NSString stringWithFormat:@\"\\%d\", ($a.int+$b.int)]] ) { CommonTree *root_1 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; root_1 = (CommonTree *)[treeAdaptor becomeRoot:/* ASTTreeParser createRewriteNodeFromElement */ [stream_8 nextNode] old:root_1]; [treeAdaptor addChild:[stream_p nextTree] toTree:root_1]; [treeAdaptor addChild: [[treeAdaptor createTree:INT FromToken:[NSString stringWithFormat:@"%d", ((a!=nil?[a.text integerValue]:0)+(b!=nil?[b.text integerValue]:0))] Text:@"INT"] retain] toTree:root_1]; [treeAdaptor addChild:root_1 toTree:root_0]; } } retval.tree = root_0; } } break; case 4 : ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:24:4: ^( '+' p= poly q= poly ) // alt { /* ASTTreeParser tree */ _last = (CommonTree *)[input LT:1]; { CommonTree *_save_last_1 = _last; CommonTree *_first_1 = nil; CommonTree *root_1 = [[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; char_literal6=(CommonTree *)[self match:input TokenType:8 Follow:FOLLOW_8_in_poly161]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_8 addElement:char_literal6]; [self match:input TokenType:TokenTypeDOWN Follow:nil]; if ( state.failed ) return retval; /* ASTTreeParser ruleRefTrack */ _last = (CommonTree *)[input LT:1]; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_poly165]; p = [self poly]; [self popFollow]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_poly addElement:[p getTree]]; /* ASTTreeParser ruleRefTrack */ _last = (CommonTree *)[input LT:1]; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_poly169]; q = [self poly]; [self popFollow]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_poly addElement:[q getTree]]; [self match:input TokenType:TokenTypeUP Follow:nil]; if ( state.failed ) return retval; [treeAdaptor addChild:root_1 toTree:root_0]; _last = _save_last_1; } // AST REWRITE // elements: 8, p, q, p, q // token labels: // rule labels: retval, q, p // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking == 0 ) { retval.tree = root_0; RewriteRuleSubtreeStream *stream_retval = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"token retval" element:retval!=nil?[retval getTree]:nil] retain]; RewriteRuleSubtreeStream *stream_q = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"token q" element:q!=nil?[q getTree]:nil] retain]; RewriteRuleSubtreeStream *stream_p = [[RewriteRuleSubtreeStream newRewriteRuleSubtreeStream:treeAdaptor description:@"token p" element:p!=nil?[p getTree]:nil] retain]; root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; // 24:24: -> { [[$p.tree toStringTree] isEqualToString:@\"0\"] }? $q if ( [[(p!=nil?((CommonTree *)p.tree):nil) toStringTree] isEqualToString:@"0"] ) { [treeAdaptor addChild:[stream_q nextTree] toTree:root_0]; } else // 25:8: -> { [[$q.tree toStringTree] isEqualToString:@\"0\"] }? $p if ( [[(q!=nil?((CommonTree *)q.tree):nil) toStringTree] isEqualToString:@"0"] ) { [treeAdaptor addChild:[stream_p nextTree] toTree:root_0]; } else // 26:8: -> ^( '+' $p $q) { // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:26:11: ^( '+' $p $q) { CommonTree *root_1 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; root_1 = (CommonTree *)[treeAdaptor becomeRoot:/* ASTTreeParser createRewriteNodeFromElement */ [stream_8 nextNode] old:root_1]; [treeAdaptor addChild:[stream_p nextTree] toTree:root_1]; [treeAdaptor addChild:[stream_q nextTree] toTree:root_1]; [treeAdaptor addChild:root_1 toTree:root_0]; } } retval.tree = root_0; } } break; case 5 : ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:28:4: ^( MULT INT poly ) // alt { /* ASTTreeParser tree */ _last = (CommonTree *)[input LT:1]; { CommonTree *_save_last_1 = _last; CommonTree *_first_1 = nil; CommonTree *root_1 = [[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; MULT7=(CommonTree *)[self match:input TokenType:MULT Follow:FOLLOW_MULT_in_poly216]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_MULT addElement:MULT7]; [self match:input TokenType:TokenTypeDOWN Follow:nil]; if ( state.failed ) return retval; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; INT8=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly218]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_INT addElement:INT8]; /* ASTTreeParser ruleRefTrack */ _last = (CommonTree *)[input LT:1]; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_poly220]; poly9 = [self poly]; [self popFollow]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_poly addElement:[poly9 getTree]]; [self match:input TokenType:TokenTypeUP Follow:nil]; if ( state.failed ) return retval; [treeAdaptor addChild:root_1 toTree:root_0]; _last = _save_last_1; } // AST REWRITE // elements: INT, poly, poly, MULT // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking == 0 ) { 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]; // 28:21: -> {$INT.int==1}? poly if ((INT8!=nil?[INT8.text integerValue]:0)==1) { [treeAdaptor addChild:[stream_poly nextTree] toTree:root_0]; } else // 29:8: -> ^( MULT INT poly ) { // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:29:11: ^( MULT INT poly ) { CommonTree *root_1 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; root_1 = (CommonTree *)[treeAdaptor becomeRoot:/* ASTTreeParser createRewriteNodeFromElement */ [stream_MULT nextNode] old:root_1]; // TODO: args: [treeAdaptor addChild:/* ASTTreeParser createRewriteNodeFromElement */ [stream_INT nextNode] toTree:root_1]; [treeAdaptor addChild:[stream_poly nextTree] toTree:root_1]; [treeAdaptor addChild:root_1 toTree:root_0]; } } retval.tree = root_0; } } break; case 6 : ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:31:4: ^( '^' ID e= INT ) // alt { /* ASTTreeParser tree */ _last = (CommonTree *)[input LT:1]; { CommonTree *_save_last_1 = _last; CommonTree *_first_1 = nil; CommonTree *root_1 = [[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; char_literal10=(CommonTree *)[self match:input TokenType:9 Follow:FOLLOW_9_in_poly251]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_9 addElement:char_literal10]; [self match:input TokenType:TokenTypeDOWN Follow:nil]; if ( state.failed ) return retval; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; ID11=(CommonTree *)[self match:input TokenType:ID Follow:FOLLOW_ID_in_poly253]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_ID addElement:ID11]; /* ASTTreeParser tokenRefBang */ _last = (CommonTree *)[input LT:1]; e=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly257]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) [stream_INT addElement:e]; [self match:input TokenType:TokenTypeUP Follow:nil]; if ( state.failed ) return retval; [treeAdaptor addChild:root_1 toTree:root_0]; _last = _save_last_1; } // AST REWRITE // elements: INT, ID, INT, 9, ID // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: if ( state.backtracking == 0 ) { 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]; // 31:21: -> {$e.int==1}? ID if ((e!=nil?[e.text integerValue]:0)==1) { // TODO: args: [treeAdaptor addChild:/* ASTTreeParser createRewriteNodeFromElement */ [stream_ID nextNode] toTree:root_0]; } else // 32:8: -> {$e.int==0}? INT[@\"1\"] if ((e!=nil?[e.text integerValue]:0)==0) { [treeAdaptor addChild: [[treeAdaptor createTree:INT FromToken:@"1" Text:@"INT"] retain] toTree:root_0]; } else // 33:8: -> ^( '^' ID INT ) { // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:33:11: ^( '^' ID INT ) { CommonTree *root_1 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; root_1 = (CommonTree *)[treeAdaptor becomeRoot:/* ASTTreeParser createRewriteNodeFromElement */ [stream_9 nextNode] old:root_1]; // TODO: args: [treeAdaptor addChild:/* ASTTreeParser createRewriteNodeFromElement */ [stream_ID nextNode] toTree:root_1]; // TODO: args: [treeAdaptor addChild:/* ASTTreeParser createRewriteNodeFromElement */ [stream_INT nextNode] toTree:root_1]; [treeAdaptor addChild:root_1 toTree:root_0]; } } retval.tree = root_0; } } break; case 7 : ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:35:4: INT // alt { root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRef */ _last = (CommonTree *)[input LT:1]; INT12=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_poly302]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) { INT12_tree = (CommonTree *)[treeAdaptor dupNode:INT12]; [treeAdaptor addChild:INT12_tree toTree:root_0]; } /* ASTTreeParser noRewrite */ if ( state.backtracking == 0 ) { } } break; case 8 : ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:36:4: ID // alt { root_0 = (CommonTree *)[[[treeAdaptor class] newEmptyTree] retain]; /* ASTTreeParser tokenRef */ _last = (CommonTree *)[input LT:1]; ID13=(CommonTree *)[self match:input TokenType:ID Follow:FOLLOW_ID_in_poly307]; if ( state.failed ) return retval; if ( state.backtracking == 0 ) { ID13_tree = (CommonTree *)[treeAdaptor dupNode:ID13]; [treeAdaptor addChild:ID13_tree toTree:root_0]; } /* ASTTreeParser noRewrite */ if ( state.backtracking == 0 ) { } } break; } /* ASTTreeParser ruleCleanUp */ /* AST ruleCleanUp */ /* token+rule list labels */ [stream_INT release]; [stream_MULT release]; [stream_ID release]; [stream_9 release]; [stream_8 release]; [stream_poly release]; if ( state.backtracking == 0 ) { retval.tree = (CommonTree *)[treeAdaptor rulePostProcessing:root_0]; } } @catch (RecognitionException *re) { [self reportError:re]; [self recover:input Exception:re]; } @finally { /* ruleScopeCleanUp */ } return retval; } /* $ANTLR end poly */ // $ANTLR start synpred1_Simplifier_fragment - (void) synpred1_Simplifier_fragment { /* ruleLabelDefs entry */ CommonTree *a = nil; CommonTree *b = nil; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:16:7: ( ^( '+' a= INT b= INT ) ) // ruleBlockSingleAlt // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:16:7: ^( '+' a= INT b= INT ) // alt { [self match:input TokenType:8 Follow:FOLLOW_8_in_synpred1_Simplifier52]; if ( state.failed ) return ; [self match:input TokenType:DOWN Follow:nil]; if ( state.failed ) return ; a=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_synpred1_Simplifier56]; if ( state.failed ) return ; b=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_synpred1_Simplifier60]; if ( state.failed ) return ; [self match:input TokenType:UP Follow:nil]; if ( state.failed ) return ; } } // $ANTLR end synpred1_Simplifier_fragment // $ANTLR start synpred2_Simplifier_fragment - (void) synpred2_Simplifier_fragment { /* ruleLabelDefs entry */ CommonTree *a = nil; CommonTree *b = nil;Simplifier_poly_return * p = nil ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:18:4: ( ^( '+' ^( '+' a= INT p= poly ) b= INT ) ) // ruleBlockSingleAlt // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:18:4: ^( '+' ^( '+' a= INT p= poly ) b= INT ) // alt { [self match:input TokenType:8 Follow:FOLLOW_8_in_synpred2_Simplifier73]; if ( state.failed ) return ; [self match:input TokenType:DOWN Follow:nil]; if ( state.failed ) return ; [self match:input TokenType:8 Follow:FOLLOW_8_in_synpred2_Simplifier76]; if ( state.failed ) return ; [self match:input TokenType:DOWN Follow:nil]; if ( state.failed ) return ; a=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_synpred2_Simplifier80]; if ( state.failed ) return ; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_synpred2_Simplifier84]; p = [self poly]; [self popFollow]; if ( state.failed ) return ; [self match:input TokenType:UP Follow:nil]; if ( state.failed ) return ; b=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_synpred2_Simplifier89]; if ( state.failed ) return ; [self match:input TokenType:UP Follow:nil]; if ( state.failed ) return ; } } // $ANTLR end synpred2_Simplifier_fragment // $ANTLR start synpred3_Simplifier_fragment - (void) synpred3_Simplifier_fragment { /* ruleLabelDefs entry */ CommonTree *a = nil; CommonTree *b = nil;Simplifier_poly_return * p = nil ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:21:4: ( ^( '+' ^( '+' p= poly a= INT ) b= INT ) ) // ruleBlockSingleAlt // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:21:4: ^( '+' ^( '+' p= poly a= INT ) b= INT ) // alt { [self match:input TokenType:8 Follow:FOLLOW_8_in_synpred3_Simplifier117]; if ( state.failed ) return ; [self match:input TokenType:DOWN Follow:nil]; if ( state.failed ) return ; [self match:input TokenType:8 Follow:FOLLOW_8_in_synpred3_Simplifier120]; if ( state.failed ) return ; [self match:input TokenType:DOWN Follow:nil]; if ( state.failed ) return ; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_synpred3_Simplifier124]; p = [self poly]; [self popFollow]; if ( state.failed ) return ; a=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_synpred3_Simplifier128]; if ( state.failed ) return ; [self match:input TokenType:UP Follow:nil]; if ( state.failed ) return ; b=(CommonTree *)[self match:input TokenType:INT Follow:FOLLOW_INT_in_synpred3_Simplifier133]; if ( state.failed ) return ; [self match:input TokenType:UP Follow:nil]; if ( state.failed ) return ; } } // $ANTLR end synpred3_Simplifier_fragment // $ANTLR start synpred4_Simplifier_fragment - (void) synpred4_Simplifier_fragment { /* ruleLabelDefs entry */ Simplifier_poly_return * p = nil ; Simplifier_poly_return * q = nil ; // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:24:4: ( ^( '+' p= poly q= poly ) ) // ruleBlockSingleAlt // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/polydiff/Simplifier.g:24:4: ^( '+' p= poly q= poly ) // alt { [self match:input TokenType:8 Follow:FOLLOW_8_in_synpred4_Simplifier161]; if ( state.failed ) return ; [self match:input TokenType:DOWN Follow:nil]; if ( state.failed ) return ; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_synpred4_Simplifier165]; p = [self poly]; [self popFollow]; if ( state.failed ) return ; /* ruleRef */ [self pushFollow:FOLLOW_poly_in_synpred4_Simplifier169]; q = [self poly]; [self popFollow]; if ( state.failed ) return ; [self match:input TokenType:UP Follow:nil]; if ( state.failed ) return ; } } // $ANTLR end synpred4_Simplifier_fragment /* ObjC end rules */ @end /* end of Simplifier implementation line 692 */