1 // $ANTLR 3.0 Test.gl 2007-08-04 15:59:43 2 3 #import "TestLexer.h" 4 5 /** As per Terence: No returns for lexer rules! 6 #pragma mark Rule return scopes start 7 #pragma mark Rule return scopes end 8 */ 9 @implementation TestLexer 10 11 - (id) initWithCharStream:(id<ANTLRCharStream>)anInput 12 { 13 if ((self = [super initWithCharStream:anInput]) != nil) { 14 } 15 return self; 16 } 17 18 - (void) dealloc 19 { 20 [super dealloc]; 21 } 22 23 + (NSString *) tokenNameForType:(NSInteger)aTokenType 24 { 25 return nil; 26 } 27 28 - (NSString *) grammarFileName 29 { 30 return @"Test.gl"; 31 } 32 33 34 - (void) mID 35 { 36 @try { 37 ruleNestingLevel++; 38 int _type = TestLexer_ID; 39 // Test.gl:8:6: ( LETTER ( LETTER | DIGIT )* ) // ruleBlockSingleAlt 40 // Test.gl:8:6: LETTER ( LETTER | DIGIT )* // alt 41 { 42 [self mLETTER]; 43 44 45 do { 46 int alt1=2; 47 { 48 int LA1_0 = [input LA:1]; 49 if ( (LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||(LA1_0>='a' && LA1_0<='z') ) { 50 alt1 = 1; 51 } 52 53 } 54 switch (alt1) { 55 case 1 : 56 // Test.gl: // alt 57 { 58 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')) { 59 [input consume]; 60 61 } else { 62 ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input]; 63 [self recover:mse]; @throw mse; 64 } 65 66 67 } 68 break; 69 70 default : 71 goto loop1; 72 } 73 } while (YES); loop1: ; 74 75 76 } 77 78 self->_tokenType = _type; 79 } 80 @finally { 81 ruleNestingLevel--; 82 // rule cleanup 83 // token+rule list labels 84 85 } 86 return; 87 } 88 // $ANTLR end ID 89 90 91 - (void) mDIGIT 92 { 93 @try { 94 ruleNestingLevel++; 95 // Test.gl:11:18: ( '0' .. '9' ) // ruleBlockSingleAlt 96 // Test.gl:11:18: '0' .. '9' // alt 97 { 98 [self matchRangeFromChar:'0' to:'9']; 99 100 } 101 102 } 103 @finally { 104 ruleNestingLevel--; 105 // rule cleanup 106 // token+rule list labels 107 108 } 109 return; 110 } 111 // $ANTLR end DIGIT 112 113 114 - (void) mLETTER 115 { 116 @try { 117 ruleNestingLevel++; 118 // Test.gl:15:4: ( 'a' .. 'z' | 'A' .. 'Z' ) // ruleBlockSingleAlt 119 // Test.gl: // alt 120 { 121 if (([input LA:1]>='A' && [input LA:1]<='Z')||([input LA:1]>='a' && [input LA:1]<='z')) { 122 [input consume]; 123 124 } else { 125 ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input]; 126 [self recover:mse]; @throw mse; 127 } 128 129 130 } 131 132 } 133 @finally { 134 ruleNestingLevel--; 135 // rule cleanup 136 // token+rule list labels 137 138 } 139 return; 140 } 141 // $ANTLR end LETTER 142 143 - (void) mTokens 144 { 145 // Test.gl:1:10: ( ID ) // ruleBlockSingleAlt 146 // Test.gl:1:10: ID // alt 147 { 148 [self mID]; 149 150 151 152 } 153 154 155 } 156 157 @end