1/** \file 2 * This OBJC source file was generated by $ANTLR version ${project.version} ${buildNumber} 3 * 4 * - From the grammar source file : TestLexer.g 5 * - On : 2011-05-06 19:16:22 6 * - for the lexer : TestLexerLexer 7 * 8 * Editing it, at least manually, is not wise. 9 * 10 * ObjC language generator and runtime by Alan Condit, acondit|hereisanat|ipns|dotgoeshere|com. 11 * 12 * 13*/ 14// $ANTLR ${project.version} ${buildNumber} TestLexer.g 2011-05-06 19:16:22 15 16 17/* ----------------------------------------- 18 * Include the ANTLR3 generated header file. 19 */ 20#import "TestLexer.h" 21/* ----------------------------------------- */ 22 23 24/* ============================================================================= */ 25/* ============================================================================= 26 * Start of recognizer 27 */ 28 29/** As per Terence: No returns for lexer rules! */ 30@implementation TestLexer // line 330 31 32+ (void) initialize 33{ 34 [ANTLRBaseRecognizer setGrammarFileName:@"TestLexer.g"]; 35} 36 37+ (NSString *) tokenNameForType:(NSInteger)aTokenType 38{ 39 return [[self getTokenNames] objectAtIndex:aTokenType]; 40} 41 42+ (TestLexer *)newTestLexerWithCharStream:(id<ANTLRCharStream>)anInput 43{ 44 return [[TestLexer alloc] initWithCharStream:anInput]; 45} 46 47- (id) initWithCharStream:(id<ANTLRCharStream>)anInput 48{ 49 self = [super initWithCharStream:anInput State:[[ANTLRRecognizerSharedState newANTLRRecognizerSharedStateWithRuleLen:4+1] retain]]; 50 if ( self != nil ) { 51 } 52 return self; 53} 54 55- (void) dealloc 56{ 57 [super dealloc]; 58} 59 60/* ObjC Start of actions.lexer.methods */ 61/* ObjC end of actions.lexer.methods */ 62/* ObjC start methods() */ 63/* ObjC end methods() */ 64 65/* Start of Rules */ 66// $ANTLR start "ID" 67- (void) mID 68{ 69 // 70 /* my ruleScopeSetUp */ 71 /* Terence's stuff */ 72 73 @try { 74 NSInteger _type = ID; 75 NSInteger _channel = ANTLRTokenChannelDefault; 76 // TestLexer.g:8:4: ( LETTER ( LETTER | DIGIT )* ) // ruleBlockSingleAlt 77 // TestLexer.g:8:6: LETTER ( LETTER | DIGIT )* // alt 78 { 79 [self mLETTER]; 80 81 82 83 do { 84 NSInteger alt1=2; 85 NSInteger LA1_0 = [input LA:1]; 86 if ( ((LA1_0 >= '0' && LA1_0 <= '9')||(LA1_0 >= 'A' && LA1_0 <= 'Z')||(LA1_0 >= 'a' && LA1_0 <= 'z')) ) { 87 alt1=1; 88 } 89 90 91 switch (alt1) { 92 case 1 : ; 93 // TestLexer.g: // alt 94 { 95 if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))||(([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) { 96 [input consume]; 97 } else { 98 ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input]; 99 [self recover:mse]; 100 @throw mse; 101 } 102 103 104 } 105 break; 106 107 default : 108 goto loop1; 109 } 110 } while (YES); 111 loop1: ; 112 113 114 } 115 116 // token+rule list labels 117 118 state.type = _type; 119 state.channel = _channel; 120 } 121 @finally { 122 // 123 /* Terence's stuff */ 124 125 } 126 return; 127} 128/* $ANTLR end "ID" */ 129 130// $ANTLR start "DIGIT" 131- (void) mDIGIT 132{ 133 // 134 /* my ruleScopeSetUp */ 135 /* Terence's stuff */ 136 137 @try { 138 // TestLexer.g:11:16: ( '0' .. '9' ) // ruleBlockSingleAlt 139 // TestLexer.g: // alt 140 { 141 if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))) { 142 [input consume]; 143 } else { 144 ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input]; 145 [self recover:mse]; 146 @throw mse; 147 } 148 149 150 } 151 152 153 } 154 @finally { 155 // 156 /* Terence's stuff */ 157 158 } 159 return; 160} 161/* $ANTLR end "DIGIT" */ 162 163// $ANTLR start "LETTER" 164- (void) mLETTER 165{ 166 // 167 /* my ruleScopeSetUp */ 168 /* Terence's stuff */ 169 170 @try { 171 // TestLexer.g:15:2: ( 'a' .. 'z' | 'A' .. 'Z' ) // ruleBlockSingleAlt 172 // TestLexer.g: // alt 173 { 174 if ((([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) { 175 [input consume]; 176 } else { 177 ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException newException:nil stream:input]; 178 [self recover:mse]; 179 @throw mse; 180 } 181 182 183 } 184 185 186 } 187 @finally { 188 // 189 /* Terence's stuff */ 190 191 } 192 return; 193} 194/* $ANTLR end "LETTER" */ 195 196- (void) mTokens 197{ 198 // TestLexer.g:1:8: ( ID ) // ruleBlockSingleAlt 199 // TestLexer.g:1:10: ID // alt 200 { 201 [self mID]; 202 203 204 205 } 206 207 208} 209 210@end /* end of TestLexer implementation line 397 */