// $ANTLR 3.0 Test.gl 2007-08-04 15:59:43 #import "TestLexer.h" /** As per Terence: No returns for lexer rules! #pragma mark Rule return scopes start #pragma mark Rule return scopes end */ @implementation TestLexer - (id) initWithCharStream:(id<ANTLRCharStream>)anInput { if ((self = [super initWithCharStream:anInput]) != nil) { } return self; } - (void) dealloc { [super dealloc]; } + (NSString *) tokenNameForType:(NSInteger)aTokenType { return nil; } - (NSString *) grammarFileName { return @"Test.gl"; } - (void) mID { @try { ruleNestingLevel++; int _type = TestLexer_ID; // Test.gl:8:6: ( LETTER ( LETTER | DIGIT )* ) // ruleBlockSingleAlt // Test.gl:8:6: LETTER ( LETTER | DIGIT )* // alt { [self mLETTER]; do { int alt1=2; { int LA1_0 = [input LA:1]; if ( (LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||(LA1_0>='a' && LA1_0<='z') ) { alt1 = 1; } } switch (alt1) { case 1 : // Test.gl: // alt { 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')) { [input consume]; } else { ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input]; [self recover:mse]; @throw mse; } } break; default : goto loop1; } } while (YES); loop1: ; } self->_tokenType = _type; } @finally { ruleNestingLevel--; // rule cleanup // token+rule list labels } return; } // $ANTLR end ID - (void) mDIGIT { @try { ruleNestingLevel++; // Test.gl:11:18: ( '0' .. '9' ) // ruleBlockSingleAlt // Test.gl:11:18: '0' .. '9' // alt { [self matchRangeFromChar:'0' to:'9']; } } @finally { ruleNestingLevel--; // rule cleanup // token+rule list labels } return; } // $ANTLR end DIGIT - (void) mLETTER { @try { ruleNestingLevel++; // Test.gl:15:4: ( 'a' .. 'z' | 'A' .. 'Z' ) // ruleBlockSingleAlt // Test.gl: // alt { if (([input LA:1]>='A' && [input LA:1]<='Z')||([input LA:1]>='a' && [input LA:1]<='z')) { [input consume]; } else { ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input]; [self recover:mse]; @throw mse; } } } @finally { ruleNestingLevel--; // rule cleanup // token+rule list labels } return; } // $ANTLR end LETTER - (void) mTokens { // Test.gl:1:10: ( ID ) // ruleBlockSingleAlt // Test.gl:1:10: ID // alt { [self mID]; } } @end