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