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 : T.g
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *     -                            On : 2011-05-06 19:14:23
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *     -                for the parser : TParserParser
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} T.g 2011-05-06 19:14:23
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* -----------------------------------------
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Include the ANTLR3 generated header file.
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#import "TParser.h"
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ----------------------------------------- */
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/** Demonstrates how semantic predicates get hoisted out of the rule in
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  which they are found and used in other decisions.  This grammar illustrates
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  how predicates can be used to distinguish between enum as a keyword and
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver *  an ID *dynamically*. :)
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Run "java org.antlr.Tool -dfa t.g" to generate DOT (graphviz) files.  See
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * the T_dec-1.dot file to see the predicates in action.
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ============================================================================= */
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* =============================================================================
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Start of recognizer
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Bitsets
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_identifier_in_stat34;
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_identifier_in_stat34_data[] = { 0x0000000000000002LL};
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_enumAsKeyword_in_stat47;
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_enumAsKeyword_in_stat47_data[] = { 0x0000000000000002LL};
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_ID_in_identifier66;
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_ID_in_identifier66_data[] = { 0x0000000000000002LL};
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_enumAsID_in_identifier74;
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_enumAsID_in_identifier74_data[] = { 0x0000000000000002LL};
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_7_in_enumAsKeyword89;
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_7_in_enumAsKeyword89_data[] = { 0x0000000000000002LL};
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic ANTLRBitSet *FOLLOW_7_in_enumAsID100;
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverstatic const unsigned long long FOLLOW_7_in_enumAsID100_data[] = { 0x0000000000000002LL};
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Dynamic Global Scopes
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Dynamic Rule Scopes
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Rule Return Scopes start
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//#pragma mark Rule return scopes start
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Rule return scopes start
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@implementation TParser  // line 637
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start of ruleAttributeScope */
65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark Dynamic Rule Scopes
66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end of ruleAttributeScope */
67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma mark global Attribute Scopes
68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start globalAttributeScope */
69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end globalAttributeScope */
70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start actions.(actionScope).synthesize */
71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end actions.(actionScope).synthesize */
72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start synthesize() */
73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end synthesize() */
74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver+ (void) initialize
76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    #pragma mark Bitsets
78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_identifier_in_stat34 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_identifier_in_stat34_data Count:(NSUInteger)1] retain];
79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_enumAsKeyword_in_stat47 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_enumAsKeyword_in_stat47_data Count:(NSUInteger)1] retain];
80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_ID_in_identifier66 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_ID_in_identifier66_data Count:(NSUInteger)1] retain];
81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_enumAsID_in_identifier74 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_enumAsID_in_identifier74_data Count:(NSUInteger)1] retain];
82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_7_in_enumAsKeyword89 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_7_in_enumAsKeyword89_data Count:(NSUInteger)1] retain];
83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    FOLLOW_7_in_enumAsID100 = [[ANTLRBitSet newANTLRBitSetWithBits:(const unsigned long long *)FOLLOW_7_in_enumAsID100_data Count:(NSUInteger)1] retain];
84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    [ANTLRBaseRecognizer setTokenNames:[[AMutableArray arrayWithObjects:@"<invalid>", @"<EOR>", @"<DOWN>", @"<UP>",
86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver @"ID", @"INT", @"WS", @"'enum'", nil] retain]];
87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    [ANTLRBaseRecognizer setGrammarFileName:@"T.g"];
88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver+ (TParser *)newTParser:(id<ANTLRTokenStream>)aStream
91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return [[TParser alloc] initWithTokenStream:aStream];
93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (id) initWithTokenStream:(id<ANTLRTokenStream>)aStream
98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    self = [super initWithTokenStream:aStream State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:4+1] retain]];
100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    if ( self != nil ) {
101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* start of actions-actionScope-init */
104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        enableEnum = NO;
106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* start of init */
108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return self;
110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) dealloc
113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    [super dealloc];
115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start members */
118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end members */
119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start actions.(actionScope).methods */
120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end actions.(actionScope).methods */
121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start methods() */
122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end methods() */
123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC start rules */
124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start stat
126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * T.g:24:1: stat : ( identifier | enumAsKeyword );
127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) stat
129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // T.g:24:5: ( identifier | enumAsKeyword ) //ruleblock
135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        NSInteger alt1=2;
136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        NSInteger LA1_0 = [input LA:1];
137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        if ( (LA1_0==ID) ) {
139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            alt1=1;
140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        else if ( (LA1_0==7) ) {
142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            NSInteger LA1_2 = [input LA:2];
143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            if ( ((!enableEnum)) ) {
145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt1=1;
146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            else if ( ((enableEnum)) ) {
148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                alt1=2;
149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            else {
151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:1 state:2 stream:input];
152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                nvae.c = LA1_2;
153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                @throw nvae;
154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            }
156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        else {
158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:1 state:0 stream:input];
159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            nvae.c = LA1_0;
160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw nvae;
161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        switch (alt1) {
164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 1 : ;
165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // T.g:24:7: identifier // alt
166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                /* ruleRef */
168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self pushFollow:FOLLOW_identifier_in_stat34];
169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self identifier];
170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self popFollow];
172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NSLog(@"enum is an ID");
176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 2 : ;
181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // T.g:25:7: enumAsKeyword // alt
182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                /* ruleRef */
184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self pushFollow:FOLLOW_enumAsKeyword_in_stat47];
185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self enumAsKeyword];
186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self popFollow];
188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                NSLog(@"enum is a keyword");
192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end stat */
213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start identifier
216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * T.g:28:1: identifier : ( ID | enumAsID );
217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) identifier
219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
223324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
224324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // T.g:29:5: ( ID | enumAsID ) //ruleblock
225324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        NSInteger alt2=2;
226324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        NSInteger LA2_0 = [input LA:1];
227324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
228324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        if ( (LA2_0==ID) ) {
229324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            alt2=1;
230324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
231324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        else if ( (LA2_0==7) ) {
232324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            alt2=2;
233324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
234324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        else {
235324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException newException:2 state:0 stream:input];
236324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            nvae.c = LA2_0;
237324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw nvae;
238324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
239324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
240324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        switch (alt2) {
241324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 1 : ;
242324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // T.g:29:7: ID // alt
243324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
244324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self match:input TokenType:ID Follow:FOLLOW_ID_in_identifier66];
245324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
246324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
247324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
248324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            case 2 : ;
249324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                // T.g:30:7: enumAsID // alt
250324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                {
251324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                /* ruleRef */
252324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self pushFollow:FOLLOW_enumAsID_in_identifier74];
253324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self enumAsID];
254324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
255324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                [self popFollow];
256324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
257324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
258324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
259324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                }
260324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver                break;
261324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
262324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
263324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
264324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
265324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
266324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
267324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
268324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
269324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
270324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
271324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
272324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
273324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
274324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
275324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
276324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
277324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end identifier */
278324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
279324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
280324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start enumAsKeyword
281324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * T.g:33:1: enumAsKeyword :{...}? 'enum' ;
282324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
283324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) enumAsKeyword
284324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
285324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
286324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
287324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
288324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
289324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // T.g:33:15: ({...}? 'enum' ) // ruleBlockSingleAlt
290324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // T.g:33:17: {...}? 'enum' // alt
291324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
292324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        if ( !((enableEnum)) ) {
293324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw [ANTLRFailedPredicateException newException:@"enumAsKeyword" predicate:@"enableEnum" stream:input];
294324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
295324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
296324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self match:input TokenType:7 Follow:FOLLOW_7_in_enumAsKeyword89];
297324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
298324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
299324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
300324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
301324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
302324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
303324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
304324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
305324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
306324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
307324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
308324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
309324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
310324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
311324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
312324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
313324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
314324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end enumAsKeyword */
315324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
316324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/*
317324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * $ANTLR start enumAsID
318324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * T.g:35:1: enumAsID :{...}? 'enum' ;
319324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
320324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) enumAsID
321324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
322324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* my ruleScopeSetUp */
323324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    /* Terence's stuff */
324324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
325324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @try {
326324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // T.g:35:10: ({...}? 'enum' ) // ruleBlockSingleAlt
327324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // T.g:35:12: {...}? 'enum' // alt
328324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        {
329324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        if ( !((!enableEnum)) ) {
330324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            @throw [ANTLRFailedPredicateException newException:@"enumAsID" predicate:@"!enableEnum" stream:input];
331324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
332324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
333324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self match:input TokenType:7 Follow:FOLLOW_7_in_enumAsID100];
334324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
335324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        }
336324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
337324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        // token+rule list labels
338324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
339324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
340324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @catch (ANTLRRecognitionException *re) {
341324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self reportError:re];
342324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        [self recover:input Exception:re];
343324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
344324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
345324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    @finally {
346324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        /* Terence's stuff */
347324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
348324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
349324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    return ;
350324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
351324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* $ANTLR end enumAsID */
352324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* ObjC end rules */
353324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
354324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@end /* end of TParser implementation line 692 */
355