1 /** \file 2 * This OBJC source file was generated by $ANTLR version 3.4 3 * 4 * - From the grammar source file : /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g 5 * - On : 2012-02-16 17:34:26 6 * - for the lexer : TLexerLexer 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 3.4 /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g 2012-02-16 17:34:26 15 16 17 /* ----------------------------------------- 18 * Include the ANTLR3 generated header file. 19 */ 20 #import "TLexer.h" 21 /* ----------------------------------------- */ 22 23 24 /* ============================================================================= */ 25 /* ============================================================================= 26 * Start of recognizer 27 */ 28 29 /** As per Terence: No returns for lexer rules! */ 30 @implementation TLexer // line 330 31 32 + (void) initialize 33 { 34 [BaseRecognizer setGrammarFileName:@"/Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g"]; 35 } 36 37 + (NSString *) tokenNameForType:(NSInteger)aTokenType 38 { 39 return [[self getTokenNames] objectAtIndex:aTokenType]; 40 } 41 42 + (TLexer *)newTLexerWithCharStream:(id<CharStream>)anInput 43 { 44 return [[TLexer alloc] initWithCharStream:anInput]; 45 } 46 47 - (id) initWithCharStream:(id<CharStream>)anInput 48 { 49 self = [super initWithCharStream:anInput State:[RecognizerSharedState newRecognizerSharedStateWithRuleLen:5+1]]; 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 "T__7" 67 - (void) mT__7 68 { 69 // 70 /* ruleScopeSetUp */ 71 72 /* ruleDeclarations */ 73 74 @try { 75 NSInteger _type = T__7; 76 NSInteger _channel = TokenChannelDefault; 77 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:7:6: ( 'enum' ) // ruleBlockSingleAlt 78 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:7:8: 'enum' // alt 79 { 80 81 82 [self matchString:@"enum"]; 83 84 85 86 } 87 88 /* token+rule list labels */ 89 90 state.type = _type; 91 state.channel = _channel; 92 } 93 @finally { 94 // 95 /* ruleScopeCleanUp */ 96 97 } 98 return; 99 } 100 /* $ANTLR end "T__7" */ 101 // $ANTLR start "ID" 102 - (void) mID 103 { 104 // 105 /* ruleScopeSetUp */ 106 107 /* ruleDeclarations */ 108 109 @try { 110 NSInteger _type = ID; 111 NSInteger _channel = TokenChannelDefault; 112 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:37:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) // ruleBlockSingleAlt 113 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:37:9: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* // alt 114 { 115 116 if ((([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||[input LA:1] == '_'||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) { 117 [input consume]; 118 } else { 119 MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input]; 120 [self recover:mse]; 121 @throw mse; 122 } 123 124 125 126 do { 127 NSInteger alt1=2; 128 NSInteger LA1_0 = [input LA:1]; 129 if ( ((LA1_0 >= '0' && LA1_0 <= '9')||(LA1_0 >= 'A' && LA1_0 <= 'Z')||LA1_0=='_'||(LA1_0 >= 'a' && LA1_0 <= 'z')) ) { 130 alt1=1; 131 } 132 133 134 switch (alt1) { 135 case 1 : ; 136 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g: // alt 137 { 138 139 if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))||(([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||[input LA:1] == '_'||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) { 140 [input consume]; 141 } else { 142 MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input]; 143 [self recover:mse]; 144 @throw mse; 145 } 146 147 148 } 149 break; 150 151 default : 152 goto loop1; 153 } 154 } while (YES); 155 loop1: ; 156 157 158 } 159 160 /* token+rule list labels */ 161 162 state.type = _type; 163 state.channel = _channel; 164 } 165 @finally { 166 // 167 /* ruleScopeCleanUp */ 168 169 } 170 return; 171 } 172 /* $ANTLR end "ID" */ 173 // $ANTLR start "INT" 174 - (void) mINT 175 { 176 // 177 /* ruleScopeSetUp */ 178 179 /* ruleDeclarations */ 180 181 @try { 182 NSInteger _type = INT; 183 NSInteger _channel = TokenChannelDefault; 184 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:40:5: ( ( '0' .. '9' )+ ) // ruleBlockSingleAlt 185 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:40:7: ( '0' .. '9' )+ // alt 186 { 187 188 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:40:7: ( '0' .. '9' )+ // positiveClosureBlock 189 NSInteger cnt2 = 0; 190 do { 191 NSInteger alt2 = 2; 192 NSInteger LA2_0 = [input LA:1]; 193 if ( ((LA2_0 >= '0' && LA2_0 <= '9')) ) { 194 alt2=1; 195 } 196 197 198 switch (alt2) { 199 case 1 : ; 200 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g: // alt 201 { 202 203 if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))) { 204 [input consume]; 205 } else { 206 MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input]; 207 [self recover:mse]; 208 @throw mse; 209 } 210 211 212 } 213 break; 214 215 default : 216 if ( cnt2 >= 1 ) 217 goto loop2; 218 EarlyExitException *eee = 219 [EarlyExitException newException:input decisionNumber:2]; 220 @throw eee; 221 } 222 cnt2++; 223 } while (YES); 224 loop2: ; 225 226 227 } 228 229 /* token+rule list labels */ 230 231 state.type = _type; 232 state.channel = _channel; 233 } 234 @finally { 235 // 236 /* ruleScopeCleanUp */ 237 238 } 239 return; 240 } 241 /* $ANTLR end "INT" */ 242 // $ANTLR start "WS" 243 - (void) mWS 244 { 245 // 246 /* ruleScopeSetUp */ 247 248 /* ruleDeclarations */ 249 250 @try { 251 NSInteger _type = WS; 252 NSInteger _channel = TokenChannelDefault; 253 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:43:5: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) // ruleBlockSingleAlt 254 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:43:9: ( ' ' | '\\t' | '\\r' | '\\n' )+ // alt 255 { 256 257 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:43:9: ( ' ' | '\\t' | '\\r' | '\\n' )+ // positiveClosureBlock 258 NSInteger cnt3 = 0; 259 do { 260 NSInteger alt3 = 2; 261 NSInteger LA3_0 = [input LA:1]; 262 if ( ((LA3_0 >= '\t' && LA3_0 <= '\n')||LA3_0=='\r'||LA3_0==' ') ) { 263 alt3=1; 264 } 265 266 267 switch (alt3) { 268 case 1 : ; 269 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g: // alt 270 { 271 272 if ((([input LA:1] >= '\t') && ([input LA:1] <= '\n'))||[input LA:1] == '\r'||[input LA:1] == ' ') { 273 [input consume]; 274 } else { 275 MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input]; 276 [self recover:mse]; 277 @throw mse; 278 } 279 280 281 } 282 break; 283 284 default : 285 if ( cnt3 >= 1 ) 286 goto loop3; 287 EarlyExitException *eee = 288 [EarlyExitException newException:input decisionNumber:3]; 289 @throw eee; 290 } 291 cnt3++; 292 } while (YES); 293 loop3: ; 294 295 296 297 _channel=99; 298 299 300 } 301 302 /* token+rule list labels */ 303 304 state.type = _type; 305 state.channel = _channel; 306 } 307 @finally { 308 // 309 /* ruleScopeCleanUp */ 310 311 } 312 return; 313 } 314 /* $ANTLR end "WS" */ 315 - (void) mTokens 316 { 317 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:1:8: ( T__7 | ID | INT | WS ) //ruleblock 318 NSInteger alt4=4; 319 unichar charLA4 = [input LA:1]; 320 switch (charLA4) { 321 case 'e': ; 322 { 323 NSInteger LA4_1 = [input LA:2]; 324 325 if ( (LA4_1=='n') ) { 326 NSInteger LA4_5 = [input LA:3]; 327 328 if ( (LA4_5=='u') ) { 329 NSInteger LA4_6 = [input LA:4]; 330 331 if ( (LA4_6=='m') ) { 332 NSInteger LA4_7 = [input LA:5]; 333 334 if ( ((LA4_7 >= '0' && LA4_7 <= '9')||(LA4_7 >= 'A' && LA4_7 <= 'Z')||LA4_7=='_'||(LA4_7 >= 'a' && LA4_7 <= 'z')) ) { 335 alt4=2; 336 } 337 else { 338 alt4 = 1; 339 } 340 } 341 else { 342 alt4 = 2; 343 } 344 } 345 else { 346 alt4 = 2; 347 } 348 } 349 else { 350 alt4 = 2; 351 } 352 } 353 break; 354 case 'A': ; 355 case 'B': ; 356 case 'C': ; 357 case 'D': ; 358 case 'E': ; 359 case 'F': ; 360 case 'G': ; 361 case 'H': ; 362 case 'I': ; 363 case 'J': ; 364 case 'K': ; 365 case 'L': ; 366 case 'M': ; 367 case 'N': ; 368 case 'O': ; 369 case 'P': ; 370 case 'Q': ; 371 case 'R': ; 372 case 'S': ; 373 case 'T': ; 374 case 'U': ; 375 case 'V': ; 376 case 'W': ; 377 case 'X': ; 378 case 'Y': ; 379 case 'Z': ; 380 case '_': ; 381 case 'a': ; 382 case 'b': ; 383 case 'c': ; 384 case 'd': ; 385 case 'f': ; 386 case 'g': ; 387 case 'h': ; 388 case 'i': ; 389 case 'j': ; 390 case 'k': ; 391 case 'l': ; 392 case 'm': ; 393 case 'n': ; 394 case 'o': ; 395 case 'p': ; 396 case 'q': ; 397 case 'r': ; 398 case 's': ; 399 case 't': ; 400 case 'u': ; 401 case 'v': ; 402 case 'w': ; 403 case 'x': ; 404 case 'y': ; 405 case 'z': ; 406 { 407 alt4=2; 408 } 409 break; 410 case '0': ; 411 case '1': ; 412 case '2': ; 413 case '3': ; 414 case '4': ; 415 case '5': ; 416 case '6': ; 417 case '7': ; 418 case '8': ; 419 case '9': ; 420 { 421 alt4=3; 422 } 423 break; 424 case '\t': ; 425 case '\n': ; 426 case '\r': ; 427 case ' ': ; 428 { 429 alt4=4; 430 } 431 break; 432 433 default: ; 434 NoViableAltException *nvae = [NoViableAltException newException:4 state:0 stream:input]; 435 nvae.c = charLA4; 436 @throw nvae; 437 438 } 439 440 switch (alt4) { 441 case 1 : ; 442 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:1:10: T__7 // alt 443 { 444 445 446 [self mT__7]; 447 448 449 450 } 451 break; 452 case 2 : ; 453 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:1:15: ID // alt 454 { 455 456 457 [self mID]; 458 459 460 461 } 462 break; 463 case 3 : ; 464 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:1:18: INT // alt 465 { 466 467 468 [self mINT]; 469 470 471 472 } 473 break; 474 case 4 : ; 475 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/hoistedPredicates/T.g:1:22: WS // alt 476 { 477 478 479 [self mWS]; 480 481 482 483 } 484 break; 485 486 } 487 488 } 489 490 @end /* end of TLexer implementation line 397 */