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/lexertest-simple/TestLexer.g 5 * - On : 2012-02-16 17:36:38 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 3.4 /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g 2012-02-16 17:36:38 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 [BaseRecognizer setGrammarFileName:@"/Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g"]; 35 } 36 37 + (NSString *) tokenNameForType:(NSInteger)aTokenType 38 { 39 return [[self getTokenNames] objectAtIndex:aTokenType]; 40 } 41 42 + (TestLexer *)newTestLexerWithCharStream:(id<CharStream>)anInput 43 { 44 return [[TestLexer alloc] initWithCharStream:anInput]; 45 } 46 47 - (id) initWithCharStream:(id<CharStream>)anInput 48 { 49 self = [super initWithCharStream:anInput State:[RecognizerSharedState newRecognizerSharedStateWithRuleLen:4+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 "ID" 67 - (void) mID 68 { 69 // 70 /* ruleScopeSetUp */ 71 72 /* ruleDeclarations */ 73 74 @try { 75 NSInteger _type = ID; 76 NSInteger _channel = TokenChannelDefault; 77 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g:8:4: ( LETTER ( LETTER | DIGIT )* ) // ruleBlockSingleAlt 78 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g:8:6: LETTER ( LETTER | DIGIT )* // alt 79 { 80 81 82 [self mLETTER]; 83 84 85 86 87 do { 88 NSInteger alt1=2; 89 NSInteger LA1_0 = [input LA:1]; 90 if ( ((LA1_0 >= '0' && LA1_0 <= '9')||(LA1_0 >= 'A' && LA1_0 <= 'Z')||(LA1_0 >= 'a' && LA1_0 <= 'z')) ) { 91 alt1=1; 92 } 93 94 95 switch (alt1) { 96 case 1 : ; 97 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g: // alt 98 { 99 100 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'))) { 101 [input consume]; 102 } else { 103 MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input]; 104 [self recover:mse]; 105 @throw mse; 106 } 107 108 109 } 110 break; 111 112 default : 113 goto loop1; 114 } 115 } while (YES); 116 loop1: ; 117 118 119 } 120 121 /* token+rule list labels */ 122 123 state.type = _type; 124 state.channel = _channel; 125 } 126 @finally { 127 // 128 /* ruleScopeCleanUp */ 129 130 } 131 return; 132 } 133 /* $ANTLR end "ID" */ 134 // $ANTLR start "DIGIT" 135 - (void) mDIGIT 136 { 137 // 138 /* ruleScopeSetUp */ 139 140 /* ruleDeclarations */ 141 142 @try { 143 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g:11:16: ( '0' .. '9' ) // ruleBlockSingleAlt 144 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g: // alt 145 { 146 147 if ((([input LA:1] >= '0') && ([input LA:1] <= '9'))) { 148 [input consume]; 149 } else { 150 MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input]; 151 [self recover:mse]; 152 @throw mse; 153 } 154 155 156 } 157 158 159 } 160 @finally { 161 // 162 /* ruleScopeCleanUp */ 163 164 } 165 return; 166 } 167 /* $ANTLR end "DIGIT" */ 168 // $ANTLR start "LETTER" 169 - (void) mLETTER 170 { 171 // 172 /* ruleScopeSetUp */ 173 174 /* ruleDeclarations */ 175 176 @try { 177 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g:15:2: ( 'a' .. 'z' | 'A' .. 'Z' ) // ruleBlockSingleAlt 178 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g: // alt 179 { 180 181 if ((([input LA:1] >= 'A') && ([input LA:1] <= 'Z'))||(([input LA:1] >= 'a') && ([input LA:1] <= 'z'))) { 182 [input consume]; 183 } else { 184 MismatchedSetException *mse = [MismatchedSetException newException:nil stream:input]; 185 [self recover:mse]; 186 @throw mse; 187 } 188 189 190 } 191 192 193 } 194 @finally { 195 // 196 /* ruleScopeCleanUp */ 197 198 } 199 return; 200 } 201 /* $ANTLR end "LETTER" */ 202 - (void) mTokens 203 { 204 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g:1:8: ( ID ) // ruleBlockSingleAlt 205 // /Users/acondit/source/antlr/code/antlr3/runtime/ObjC/Framework/examples/lexertest-simple/TestLexer.g:1:10: ID // alt 206 { 207 208 209 [self mID]; 210 211 212 213 } 214 215 216 } 217 218 @end /* end of TestLexer implementation line 397 */