1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/** \file
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber}
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *     -  From the grammar source file : SimpleCTP.g
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *     -                            On : 2011-05-06 15:09:28
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *     -           for the tree parser : SimpleCTPTreeParser
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Editing it, at least manually, is not wise.
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com.
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver*/
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// $ANTLR ${project.version} ${buildNumber} SimpleCTP.g 2011-05-06 15:09:28
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* -----------------------------------------
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Include the ANTLR3 generated header file.
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#import "SimpleCTP.h"
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ----------------------------------------- */
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ============================================================================= */
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* =============================================================================
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Start of recognizer
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Bitsets
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_declaration_in_program56;
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_declaration_in_program56_data[] = { 0x00000000020000C2LL};
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_variable_in_declaration76;
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_variable_in_declaration76_data[] = { 0x0000000000000002LL};
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_FUNC_DECL_in_declaration87;
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_FUNC_DECL_in_declaration87_data[] = { 0x0000000000000004LL};
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_functionHeader_in_declaration89;
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_functionHeader_in_declaration89_data[] = { 0x0000000000000008LL};
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_FUNC_DEF_in_declaration101;
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_FUNC_DEF_in_declaration101_data[] = { 0x0000000000000004LL};
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_functionHeader_in_declaration103;
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_functionHeader_in_declaration103_data[] = { 0x0000000000000020LL};
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_block_in_declaration105;
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_block_in_declaration105_data[] = { 0x0000000000000008LL};
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_VAR_DEF_in_variable126;
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_VAR_DEF_in_variable126_data[] = { 0x0000000000000004LL};
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_type_in_variable128;
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_type_in_variable128_data[] = { 0x0000000000004000LL};
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_declarator_in_variable130;
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_declarator_in_variable130_data[] = { 0x0000000000000008LL};
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_K_ID_in_declarator150;
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_K_ID_in_declarator150_data[] = { 0x0000000000000002LL};
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_FUNC_HDR_in_functionHeader171;
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_FUNC_HDR_in_functionHeader171_data[] = { 0x0000000000000004LL};
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_type_in_functionHeader173;
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_type_in_functionHeader173_data[] = { 0x0000000000004000LL};
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_K_ID_in_functionHeader175;
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_K_ID_in_functionHeader175_data[] = { 0x0000000000000010LL};
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_formalParameter_in_functionHeader177;
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_formalParameter_in_functionHeader177_data[] = { 0x0000000000000018LL};
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_ARG_DEF_in_formalParameter199;
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_ARG_DEF_in_formalParameter199_data[] = { 0x0000000000000004LL};
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_type_in_formalParameter201;
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_type_in_formalParameter201_data[] = { 0x0000000000004000LL};
64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_declarator_in_formalParameter203;
65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_declarator_in_formalParameter203_data[] = { 0x0000000000000008LL};
66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_BLOCK_in_block283;
67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_BLOCK_in_block283_data[] = { 0x0000000000000004LL};
68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_variable_in_block285;
69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_variable_in_block285_data[] = { 0x000000000218F828LL};
70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_stat_in_block288;
71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_stat_in_block288_data[] = { 0x000000000018F828LL};
72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_forStat_in_stat302;
73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_forStat_in_stat302_data[] = { 0x0000000000000002LL};
74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_stat310;
75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_stat310_data[] = { 0x0000000000000002LL};
76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_block_in_stat318;
77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_block_in_stat318_data[] = { 0x0000000000000002LL};
78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_K_FOR_in_forStat338;
79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_K_FOR_in_forStat338_data[] = { 0x0000000000000004LL};
80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_forStat340;
81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_forStat340_data[] = { 0x000000000018D800LL};
82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_forStat342;
83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_forStat342_data[] = { 0x000000000018D800LL};
84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_forStat344;
85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_forStat344_data[] = { 0x0000000000000020LL};
86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_block_in_forStat346;
87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_block_in_forStat346_data[] = { 0x0000000000000008LL};
88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_K_EQEQ_in_expr362;
89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_K_EQEQ_in_expr362_data[] = { 0x0000000000000004LL};
90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_expr364;
91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_expr364_data[] = { 0x000000000018D800LL};
92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_expr366;
93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_expr366_data[] = { 0x0000000000000008LL};
94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_K_LT_in_expr378;
95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_K_LT_in_expr378_data[] = { 0x0000000000000004LL};
96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_expr380;
97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_expr380_data[] = { 0x000000000018D800LL};
98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_expr382;
99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_expr382_data[] = { 0x0000000000000008LL};
100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_K_PLUS_in_expr394;
101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_K_PLUS_in_expr394_data[] = { 0x0000000000000004LL};
102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_expr396;
103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_expr396_data[] = { 0x000000000018D800LL};
104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_expr398;
105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_expr398_data[] = { 0x0000000000000008LL};
106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_K_EQ_in_expr410;
107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_K_EQ_in_expr410_data[] = { 0x0000000000000004LL};
108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_K_ID_in_expr412;
109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_K_ID_in_expr412_data[] = { 0x000000000018D800LL};
110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_expr_in_expr416;
111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_expr_in_expr416_data[] = { 0x0000000000000008LL};
112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_atom_in_expr429;
113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_atom_in_expr429_data[] = { 0x0000000000000002LL};
114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Dynamic Global Scopes
117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@implementation Symbols_Scope  /* globalAttributeScopeImplementation */
118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* start of synthesize -- OBJC-Line 1750 */
119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@synthesize tree;
121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver+ (Symbols_Scope *)newSymbols_Scope
123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return [[[Symbols_Scope alloc] init] retain];
125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (id) init
128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    self = [super init];
130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return self;
131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* start of iterate get and set functions */
134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (ANTLRCommonTree *)gettree { return( tree ); }
136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void)settree:(ANTLRCommonTree *)aVal { tree = aVal; }
138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* End of iterate get and set functions */
140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@end /* end of Symbols_Scope implementation */
142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Dynamic Rule Scopes
145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Rule Return Scopes start
147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@implementation SimpleCTP_expr_return /* returnScope */
148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver /* start of synthesize -- OBJC-Line 1837 */
149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver+ (SimpleCTP_expr_return *)newSimpleCTP_expr_return
150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return [[[SimpleCTP_expr_return alloc] init] retain];
152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (id) init
155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    self = [super init];
157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return self;
158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@end /* end of returnScope implementation */
163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//#pragma mark Rule return scopes start
166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Rule return scopes start
169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@implementation SimpleCTP  // line 637
171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start of ruleAttributeScope */
173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Dynamic Rule Scopes
174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end of ruleAttributeScope */
175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark global Attribute Scopes
176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start globalAttributeScope */
177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic _stack;
178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end globalAttributeScope */
180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start actions.(actionScope).synthesize */
181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end actions.(actionScope).synthesize */
182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start synthesize() */
183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end synthesize() */
184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver+ (void) initialize
186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    #pragma mark Bitsets
188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_declaration_in_program56 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_declaration_in_program56_data Count:(NSUInteger)1] retain];
189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_variable_in_declaration76 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_variable_in_declaration76_data Count:(NSUInteger)1] retain];
190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_FUNC_DECL_in_declaration87 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_FUNC_DECL_in_declaration87_data Count:(NSUInteger)1] retain];
191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_functionHeader_in_declaration89 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_functionHeader_in_declaration89_data Count:(NSUInteger)1] retain];
192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_FUNC_DEF_in_declaration101 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_FUNC_DEF_in_declaration101_data Count:(NSUInteger)1] retain];
193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_functionHeader_in_declaration103 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_functionHeader_in_declaration103_data Count:(NSUInteger)1] retain];
194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_block_in_declaration105 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_declaration105_data Count:(NSUInteger)1] retain];
195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_VAR_DEF_in_variable126 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_VAR_DEF_in_variable126_data Count:(NSUInteger)1] retain];
196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_type_in_variable128 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_variable128_data Count:(NSUInteger)1] retain];
197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_declarator_in_variable130 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_declarator_in_variable130_data Count:(NSUInteger)1] retain];
198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_K_ID_in_declarator150 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_declarator150_data Count:(NSUInteger)1] retain];
199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_FUNC_HDR_in_functionHeader171 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_FUNC_HDR_in_functionHeader171_data Count:(NSUInteger)1] retain];
200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_type_in_functionHeader173 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_functionHeader173_data Count:(NSUInteger)1] retain];
201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_K_ID_in_functionHeader175 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_functionHeader175_data Count:(NSUInteger)1] retain];
202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_formalParameter_in_functionHeader177 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_formalParameter_in_functionHeader177_data Count:(NSUInteger)1] retain];
203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_ARG_DEF_in_formalParameter199 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_ARG_DEF_in_formalParameter199_data Count:(NSUInteger)1] retain];
204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_type_in_formalParameter201 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_type_in_formalParameter201_data Count:(NSUInteger)1] retain];
205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_declarator_in_formalParameter203 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_declarator_in_formalParameter203_data Count:(NSUInteger)1] retain];
206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_BLOCK_in_block283 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_BLOCK_in_block283_data Count:(NSUInteger)1] retain];
207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_variable_in_block285 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_variable_in_block285_data Count:(NSUInteger)1] retain];
208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_stat_in_block288 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_stat_in_block288_data Count:(NSUInteger)1] retain];
209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_forStat_in_stat302 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_forStat_in_stat302_data Count:(NSUInteger)1] retain];
210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_stat310 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_stat310_data Count:(NSUInteger)1] retain];
211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_block_in_stat318 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_stat318_data Count:(NSUInteger)1] retain];
212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_K_FOR_in_forStat338 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_FOR_in_forStat338_data Count:(NSUInteger)1] retain];
213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_forStat340 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_forStat340_data Count:(NSUInteger)1] retain];
214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_forStat342 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_forStat342_data Count:(NSUInteger)1] retain];
215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_forStat344 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_forStat344_data Count:(NSUInteger)1] retain];
216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_block_in_forStat346 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_block_in_forStat346_data Count:(NSUInteger)1] retain];
217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_K_EQEQ_in_expr362 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_EQEQ_in_expr362_data Count:(NSUInteger)1] retain];
218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_expr364 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr364_data Count:(NSUInteger)1] retain];
219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_expr366 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr366_data Count:(NSUInteger)1] retain];
220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_K_LT_in_expr378 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_LT_in_expr378_data Count:(NSUInteger)1] retain];
221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_expr380 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr380_data Count:(NSUInteger)1] retain];
222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_expr382 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr382_data Count:(NSUInteger)1] retain];
223324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_K_PLUS_in_expr394 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_PLUS_in_expr394_data Count:(NSUInteger)1] retain];
224324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_expr396 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr396_data Count:(NSUInteger)1] retain];
225324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_expr398 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr398_data Count:(NSUInteger)1] retain];
226324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_K_EQ_in_expr410 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_EQ_in_expr410_data Count:(NSUInteger)1] retain];
227324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_K_ID_in_expr412 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_K_ID_in_expr412_data Count:(NSUInteger)1] retain];
228324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_expr_in_expr416 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_expr_in_expr416_data Count:(NSUInteger)1] retain];
229324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_atom_in_expr429 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_atom_in_expr429_data Count:(NSUInteger)1] retain];
230324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
231324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    [ANTLRBaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>",
232324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @"ARG_DEF", @"BLOCK", @"FUNC_DECL", @"FUNC_DEF", @"FUNC_HDR", @"K_CHAR",
233324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @"K_COMMA", @"K_EQ", @"K_EQEQ", @"K_FOR", @"K_ID", @"K_INT", @"K_INT_TYPE",
234324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @"K_LCURLY", @"K_LCURVE", @"K_LT", @"K_PLUS", @"K_RCURLY", @"K_RCURVE",
235324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @"K_SEMICOLON", @"K_VOID", @"VAR_DEF", @"WS", nil] retain]];
236324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    [ANTLRBaseRecognizer setGrammarFileName:@"SimpleCTP.g"];
237324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
238324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
239324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver+ (SimpleCTP *)newSimpleCTP:(id<ANTLRTreeNodeStream>)aStream
240324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
241324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return [[SimpleCTP alloc] initWithStream:aStream];
242324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
243324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
244324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
245324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
246324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (id) initWithStream:(id<ANTLRTreeNodeStream>)aStream
247324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
248324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    self = [super initWithStream:aStream State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:12+1] retain]];
249324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    if ( self != nil ) {
250324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
251324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
252324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* globalAttributeScopeInit */
253324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        Symbols_scope = [Symbols_Scope newSymbols_Scope];
254324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        Symbols_stack = [ANTLRSymbolStack newANTLRSymbolStackWithLen:30];
255324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* start of actions-actionScope-init */
256324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* start of init */
257324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
258324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return self;
259324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
260324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
261324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) dealloc
262324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
263324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    [Symbols_stack release];
264324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    [super dealloc];
265324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
266324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
267324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start members */
268324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end members */
269324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start actions.(actionScope).methods */
270324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end actions.(actionScope).methods */
271324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start methods() */
272324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end methods() */
273324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start rules */
274324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
275324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start program
276324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:13:1: program : ( declaration )+ ;
277324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
278324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) program
279324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
280324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
281324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
282324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
283324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
284324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:14:5: ( ( declaration )+ ) // ruleBlockSingleAlt
285324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:14:9: ( declaration )+ // alt
286324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
287324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:14:9: ( declaration )+ // positiveClosureBlock
288324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        NSInteger cnt1 = 0;
289324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        do {
290324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            NSInteger alt1 = 2;
291324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            NSInteger LA1_0 = [input LA:1];
292324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            if ( ((LA1_0 >= FUNC_DECL && LA1_0 <= FUNC_DEF)||LA1_0==VAR_DEF) ) {
293324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt1=1;
294324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
295324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
296324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
297324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            switch (alt1) {
298324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                case 1 : ;
299324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    // SimpleCTP.g:14:9: declaration // alt
300324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    {
301324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
302324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_declaration_in_program56];
303324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self declaration];
304324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
305324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
306324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
307324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
308324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
309324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    }
310324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    break;
311324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
312324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                default :
313324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    if ( cnt1 >= 1 )
314324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        goto loop1;
315324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    ANTLREarlyExitException *eee =
316324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [ANTLREarlyExitException newException:input decisionNumber:1];
317324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    @throw eee;
318324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
319324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            cnt1++;
320324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        } while (YES);
321324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        loop1: ;
322324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
323324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
324324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
325324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
326324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
327324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
328324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
329324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
330324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
331324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
332324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
333324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
334324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
335324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
336324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
337324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
338324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
339324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
340324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end program */
341324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
342324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
343324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start declaration
344324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:17:1: declaration : ( variable | ^( FUNC_DECL functionHeader ) | ^( FUNC_DEF functionHeader block ) );
345324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
346324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) declaration
347324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
348324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
349324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
350324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
351324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
352324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:18:5: ( variable | ^( FUNC_DECL functionHeader ) | ^( FUNC_DEF functionHeader block ) ) //ruleblock
353324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        NSInteger alt2=3;
354324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        unichar charLA2 = [input LA:1];
355324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        switch (charLA2) {
356324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case VAR_DEF: ;
357324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
358324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt2=1;
359324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
360324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
361324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case FUNC_DECL: ;
362324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
363324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt2=2;
364324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
365324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
366324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case FUNC_DEF: ;
367324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
368324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt2=3;
369324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
370324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
371324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
372324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        default: ;
373324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:2 state:0 stream:input];
374324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            nvae.c = charLA2;
375324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw nvae;
376324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
377324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
378324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
379324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        switch (alt2) {
380324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 1 : ;
381324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:18:9: variable // alt
382324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
383324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                /* ruleRef */
384324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self pushFollow:FOLLOW_variable_in_declaration76];
385324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self variable];
386324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
387324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self popFollow];
388324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
389324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
390324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
391324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
392324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
393324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 2 : ;
394324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:19:9: ^( FUNC_DECL functionHeader ) // alt
395324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
396324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self match:input TokenType:FUNC_DECL Follow:FOLLOW_FUNC_DECL_in_declaration87];
397324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
398324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:DOWN Follow:nil];
399324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
400324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_functionHeader_in_declaration89];
401324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self functionHeader];
402324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
403324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
404324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
405324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
406324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
407324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:UP Follow:nil];
408324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
409324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
410324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
411324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
412324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 3 : ;
413324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:20:9: ^( FUNC_DEF functionHeader block ) // alt
414324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
415324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self match:input TokenType:FUNC_DEF Follow:FOLLOW_FUNC_DEF_in_declaration101];
416324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
417324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:DOWN Follow:nil];
418324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
419324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_functionHeader_in_declaration103];
420324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self functionHeader];
421324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
422324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
423324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
424324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
425324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
426324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
427324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_block_in_declaration105];
428324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self block];
429324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
430324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
431324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
432324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
433324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
434324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:UP Follow:nil];
435324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
436324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
437324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
438324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
439324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
440324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
441324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
442324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
443324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
444324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
445324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
446324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
447324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
448324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
449324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
450324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
451324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
452324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
453324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
454324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
455324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end declaration */
456324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
457324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
458324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start variable
459324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:23:1: variable : ^( VAR_DEF type declarator ) ;
460324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
461324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) variable
462324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
463324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
464324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
465324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
466324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
467324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:24:5: ( ^( VAR_DEF type declarator ) ) // ruleBlockSingleAlt
468324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:24:9: ^( VAR_DEF type declarator ) // alt
469324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
470324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self match:input TokenType:VAR_DEF Follow:FOLLOW_VAR_DEF_in_variable126];
471324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
472324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:DOWN Follow:nil];
473324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
474324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_type_in_variable128];
475324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self type];
476324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
477324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
478324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
479324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
480324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
481324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
482324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_declarator_in_variable130];
483324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self declarator];
484324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
485324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
486324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
487324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
488324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
489324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:UP Follow:nil];
490324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
491324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
492324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
493324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
494324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
495324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
496324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
497324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
498324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
499324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
500324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
501324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
502324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
503324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
504324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
505324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
506324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
507324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
508324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end variable */
509324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
510324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
511324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start declarator
512324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:27:1: declarator : K_ID ;
513324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
514324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) declarator
515324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
516324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
517324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
518324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
519324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
520324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:28:5: ( K_ID ) // ruleBlockSingleAlt
521324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:28:9: K_ID // alt
522324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
523324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self match:input TokenType:K_ID Follow:FOLLOW_K_ID_in_declarator150];
524324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
525324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
526324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
527324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
528324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
529324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
530324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
531324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
532324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
533324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
534324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
535324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
536324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
537324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
538324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
539324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
540324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
541324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end declarator */
542324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
543324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
544324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start functionHeader
545324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:31:1: functionHeader : ^( FUNC_HDR type K_ID ( formalParameter )+ ) ;
546324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
547324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) functionHeader
548324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
549324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
550324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
551324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
552324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
553324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:32:5: ( ^( FUNC_HDR type K_ID ( formalParameter )+ ) ) // ruleBlockSingleAlt
554324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:32:9: ^( FUNC_HDR type K_ID ( formalParameter )+ ) // alt
555324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
556324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self match:input TokenType:FUNC_HDR Follow:FOLLOW_FUNC_HDR_in_functionHeader171];
557324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
558324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:DOWN Follow:nil];
559324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
560324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_type_in_functionHeader173];
561324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self type];
562324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
563324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
564324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
565324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
566324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
567324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:K_ID Follow:FOLLOW_K_ID_in_functionHeader175];
568324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
569324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            // SimpleCTP.g:32:30: ( formalParameter )+ // positiveClosureBlock
570324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            NSInteger cnt3 = 0;
571324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            do {
572324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NSInteger alt3 = 2;
573324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NSInteger LA3_0 = [input LA:1];
574324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                if ( (LA3_0==ARG_DEF) ) {
575324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    alt3=1;
576324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
577324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
578324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
579324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                switch (alt3) {
580324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    case 1 : ;
581324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        // SimpleCTP.g:32:30: formalParameter // alt
582324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        {
583324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        /* ruleRef */
584324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self pushFollow:FOLLOW_formalParameter_in_functionHeader177];
585324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self formalParameter];
586324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
587324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self popFollow];
588324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
589324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
590324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
591324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        }
592324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        break;
593324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
594324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    default :
595324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        if ( cnt3 >= 1 )
596324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                            goto loop3;
597324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        ANTLREarlyExitException *eee =
598324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                            [ANTLREarlyExitException newException:input decisionNumber:3];
599324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        @throw eee;
600324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
601324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                cnt3++;
602324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            } while (YES);
603324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            loop3: ;
604324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
605324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
606324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:UP Follow:nil];
607324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
608324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
609324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
610324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
611324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
612324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
613324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
614324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
615324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
616324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
617324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
618324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
619324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
620324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
621324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
622324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
623324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
624324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
625324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end functionHeader */
626324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
627324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
628324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start formalParameter
629324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:35:1: formalParameter : ^( ARG_DEF type declarator ) ;
630324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
631324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) formalParameter
632324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
633324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
634324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
635324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
636324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
637324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:36:5: ( ^( ARG_DEF type declarator ) ) // ruleBlockSingleAlt
638324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:36:9: ^( ARG_DEF type declarator ) // alt
639324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
640324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self match:input TokenType:ARG_DEF Follow:FOLLOW_ARG_DEF_in_formalParameter199];
641324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
642324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:DOWN Follow:nil];
643324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
644324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_type_in_formalParameter201];
645324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self type];
646324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
647324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
648324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
649324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
650324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
651324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
652324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_declarator_in_formalParameter203];
653324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self declarator];
654324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
655324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
656324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
657324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
658324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
659324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:UP Follow:nil];
660324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
661324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
662324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
663324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
664324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
665324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
666324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
667324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
668324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
669324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
670324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
671324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
672324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
673324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
674324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
675324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
676324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
677324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
678324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end formalParameter */
679324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
680324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
681324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start type
682324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:39:1: type : ( K_INT_TYPE | K_CHAR | K_VOID | K_ID );
683324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
684324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) type
685324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
686324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
687324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
688324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
689324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
690324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:40:5: ( K_INT_TYPE | K_CHAR | K_VOID | K_ID ) // ruleBlockSingleAlt
691324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g: // alt
692324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
693324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        if ([input LA:1] == K_CHAR||[input LA:1] == K_ID||[input LA:1] == K_INT_TYPE||[input LA:1] == K_VOID) {
694324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [input consume];
695324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [state setIsErrorRecovery:NO];
696324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        } else {
697324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
698324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw mse;
699324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
700324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
701324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
702324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
703324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
704324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
705324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
706324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
707324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
708324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
709324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
710324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
711324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
712324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
713324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
714324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
715324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
716324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
717324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
718324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end type */
719324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
720324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
721324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start block
722324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:46:1: block : ^( BLOCK ( variable )* ( stat )* ) ;
723324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
724324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) block
725324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
726324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
727324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
728324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
729324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
730324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:47:5: ( ^( BLOCK ( variable )* ( stat )* ) ) // ruleBlockSingleAlt
731324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:47:9: ^( BLOCK ( variable )* ( stat )* ) // alt
732324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
733324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self match:input TokenType:BLOCK Follow:FOLLOW_BLOCK_in_block283];
734324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
735324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        if ( [input LA:1] == DOWN ) {
736324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:DOWN Follow:nil];
737324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            do {
738324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NSInteger alt4=2;
739324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NSInteger LA4_0 = [input LA:1];
740324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                if ( (LA4_0==VAR_DEF) ) {
741324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    alt4=1;
742324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
743324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
744324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
745324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                switch (alt4) {
746324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    case 1 : ;
747324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        // SimpleCTP.g:47:17: variable // alt
748324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        {
749324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        /* ruleRef */
750324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self pushFollow:FOLLOW_variable_in_block285];
751324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self variable];
752324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
753324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self popFollow];
754324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
755324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
756324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
757324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        }
758324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        break;
759324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
760324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    default :
761324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        goto loop4;
762324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
763324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            } while (YES);
764324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            loop4: ;
765324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
766324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
767324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            do {
768324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NSInteger alt5=2;
769324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NSInteger LA5_0 = [input LA:1];
770324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                if ( (LA5_0==BLOCK||(LA5_0 >= K_EQ && LA5_0 <= K_INT)||(LA5_0 >= K_LT && LA5_0 <= K_PLUS)) ) {
771324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    alt5=1;
772324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
773324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
774324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
775324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                switch (alt5) {
776324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    case 1 : ;
777324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        // SimpleCTP.g:47:27: stat // alt
778324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        {
779324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        /* ruleRef */
780324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self pushFollow:FOLLOW_stat_in_block288];
781324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self stat];
782324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
783324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        [self popFollow];
784324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
785324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
786324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
787324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        }
788324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        break;
789324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
790324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    default :
791324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                        goto loop5;
792324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
793324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            } while (YES);
794324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            loop5: ;
795324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
796324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
797324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:UP Follow:nil];
798324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
799324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
800324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
801324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
802324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
803324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
804324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
805324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
806324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
807324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
808324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
809324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
810324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
811324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
812324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
813324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
814324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
815324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
816324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
817324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end block */
818324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
819324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
820324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start stat
821324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:50:1: stat : ( forStat | expr | block );
822324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
823324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) stat
824324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
825324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
826324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
827324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
828324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
829324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:50:5: ( forStat | expr | block ) //ruleblock
830324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        NSInteger alt6=3;
831324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        unichar charLA6 = [input LA:1];
832324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        switch (charLA6) {
833324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_FOR: ;
834324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
835324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt6=1;
836324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
837324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
838324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_EQ: ;
839324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_EQEQ: ;
840324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_ID: ;
841324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_INT: ;
842324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_LT: ;
843324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_PLUS: ;
844324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
845324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt6=2;
846324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
847324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
848324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case BLOCK: ;
849324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
850324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt6=3;
851324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
852324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
853324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
854324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        default: ;
855324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:6 state:0 stream:input];
856324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            nvae.c = charLA6;
857324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw nvae;
858324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
859324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
860324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
861324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        switch (alt6) {
862324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 1 : ;
863324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:50:7: forStat // alt
864324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
865324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                /* ruleRef */
866324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self pushFollow:FOLLOW_forStat_in_stat302];
867324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self forStat];
868324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
869324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self popFollow];
870324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
871324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
872324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
873324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
874324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
875324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 2 : ;
876324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:51:7: expr // alt
877324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
878324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                /* ruleRef */
879324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self pushFollow:FOLLOW_expr_in_stat310];
880324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self expr];
881324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
882324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self popFollow];
883324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
884324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
885324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
886324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
887324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
888324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 3 : ;
889324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:52:7: block // alt
890324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
891324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                /* ruleRef */
892324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self pushFollow:FOLLOW_block_in_stat318];
893324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self block];
894324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
895324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self popFollow];
896324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
897324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
898324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
899324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
900324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
901324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
902324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
903324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
904324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
905324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
906324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
907324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
908324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
909324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
910324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
911324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
912324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
913324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
914324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
915324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
916324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
917324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end stat */
918324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
919324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
920324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start forStat
921324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:55:1: forStat : ^( K_FOR expr expr expr block ) ;
922324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
923324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) forStat
924324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
925324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
926324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
927324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
928324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
929324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:56:5: ( ^( K_FOR expr expr expr block ) ) // ruleBlockSingleAlt
930324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:56:9: ^( K_FOR expr expr expr block ) // alt
931324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
932324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self match:input TokenType:K_FOR Follow:FOLLOW_K_FOR_in_forStat338];
933324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
934324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:DOWN Follow:nil];
935324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
936324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_expr_in_forStat340];
937324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self expr];
938324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
939324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
940324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
941324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
942324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
943324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
944324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_expr_in_forStat342];
945324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self expr];
946324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
947324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
948324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
949324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
950324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
951324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
952324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_expr_in_forStat344];
953324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self expr];
954324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
955324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
956324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
957324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
958324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
959324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            /* ruleRef */
960324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self pushFollow:FOLLOW_block_in_forStat346];
961324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self block];
962324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
963324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self popFollow];
964324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
965324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
966324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
967324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [self match:input TokenType:UP Follow:nil];
968324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
969324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
970324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
971324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
972324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
973324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
974324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
975324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
976324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
977324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
978324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
979324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
980324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
981324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
982324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
983324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
984324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
985324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
986324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end forStat */
987324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
988324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
989324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start expr
990324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:59:1: expr : ( ^( K_EQEQ expr expr ) | ^( K_LT expr expr ) | ^( K_PLUS expr expr ) | ^( K_EQ K_ID e= expr ) | atom );
991324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
992324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (SimpleCTP_expr_return *) expr
993324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
994324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
995324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
996324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
997324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    SimpleCTP_expr_return * retval = [SimpleCTP_expr_return newSimpleCTP_expr_return];
998324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    [retval setStart:[input LT:1]];
999324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1000324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1001324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
1002324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        ANTLRCommonTree *K_ID1 = nil;
1003324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver         SimpleCTP_expr_return * e = nil ;
1004324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1005324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1006324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:59:5: ( ^( K_EQEQ expr expr ) | ^( K_LT expr expr ) | ^( K_PLUS expr expr ) | ^( K_EQ K_ID e= expr ) | atom ) //ruleblock
1007324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        NSInteger alt7=5;
1008324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        unichar charLA7 = [input LA:1];
1009324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        switch (charLA7) {
1010324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_EQEQ: ;
1011324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1012324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=1;
1013324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1014324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1015324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_LT: ;
1016324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1017324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=2;
1018324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1019324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1020324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_PLUS: ;
1021324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1022324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=3;
1023324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1024324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1025324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_EQ: ;
1026324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1027324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=4;
1028324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1029324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1030324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_ID: ;
1031324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case K_INT: ;
1032324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1033324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt7=5;
1034324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1035324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1036324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1037324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        default: ;
1038324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:7 state:0 stream:input];
1039324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            nvae.c = charLA7;
1040324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw nvae;
1041324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1042324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
1043324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1044324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        switch (alt7) {
1045324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 1 : ;
1046324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:59:9: ^( K_EQEQ expr expr ) // alt
1047324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1048324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self match:input TokenType:K_EQEQ Follow:FOLLOW_K_EQEQ_in_expr362];
1049324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1050324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:DOWN Follow:nil];
1051324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
1052324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_expr_in_expr364];
1053324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self expr];
1054324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1055324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
1056324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1057324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1058324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1059324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
1060324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_expr_in_expr366];
1061324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self expr];
1062324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1063324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
1064324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1065324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1066324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1067324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:UP Follow:nil];
1068324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1069324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1070324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1071324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1072324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 2 : ;
1073324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:60:9: ^( K_LT expr expr ) // alt
1074324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1075324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self match:input TokenType:K_LT Follow:FOLLOW_K_LT_in_expr378];
1076324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1077324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:DOWN Follow:nil];
1078324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
1079324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_expr_in_expr380];
1080324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self expr];
1081324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1082324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
1083324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1084324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1085324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1086324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
1087324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_expr_in_expr382];
1088324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self expr];
1089324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1090324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
1091324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1092324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1093324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1094324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:UP Follow:nil];
1095324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1096324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1097324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1098324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1099324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 3 : ;
1100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:61:9: ^( K_PLUS expr expr ) // alt
1101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self match:input TokenType:K_PLUS Follow:FOLLOW_K_PLUS_in_expr394];
1103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:DOWN Follow:nil];
1105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
1106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_expr_in_expr396];
1107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self expr];
1108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
1110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
1114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_expr_in_expr398];
1115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self expr];
1116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
1118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:UP Follow:nil];
1122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 4 : ;
1127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:62:9: ^( K_EQ K_ID e= expr ) // alt
1128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self match:input TokenType:K_EQ Follow:FOLLOW_K_EQ_in_expr410];
1130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:DOWN Follow:nil];
1132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    K_ID1=(ANTLRCommonTree *)[self match:input TokenType:K_ID Follow:FOLLOW_K_ID_in_expr412];
1133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    /* ruleRef */
1135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self pushFollow:FOLLOW_expr_in_expr416];
1136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    e = [self expr];
1137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self popFollow];
1139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                    [self match:input TokenType:UP Follow:nil];
1143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                 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));
1146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 5 : ;
1151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // SimpleCTP.g:63:9: atom // alt
1152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
1153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                /* ruleRef */
1154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self pushFollow:FOLLOW_atom_in_expr429];
1155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self atom];
1156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self popFollow];
1158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
1162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
1163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
1165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
1166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
1168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
1169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
1170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
1171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
1172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
1174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
1175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
1177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return retval;
1178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
1179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end expr */
1180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
1182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start atom
1183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * SimpleCTP.g:66:1: atom : ( K_ID | K_INT );
1184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
1185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) atom
1186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
1187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
1188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
1189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
1191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g:67:5: ( K_ID | K_INT ) // ruleBlockSingleAlt
1192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // SimpleCTP.g: // alt
1193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
1194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        if ((([input LA:1] >= K_ID) && ([input LA:1] <= K_INT))) {
1195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [input consume];
1196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [state setIsErrorRecovery:NO];
1197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        } else {
1198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input];
1199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw mse;
1200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
1201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
1204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
1206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
1208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
1209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
1210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
1211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
1212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
1214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
1215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
1217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
1218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
1219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end atom */
1220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end rules */
1221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
1222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@end /* end of SimpleCTP implementation line 692 */
1223