📄 fuzzyjavalexer.m
字号:
// $ANTLR 3.0b6 FuzzyJava.gl 2007-02-01 01:27:55#import "FuzzyJavaLexer.h"#pragma mark Cyclic DFAs/** As per Terence: No returns for lexer rules!#pragma mark Rule return scopes start#pragma mark Rule return scopes end*/@implementation FuzzyJavaLexer- (id) initWithCharStream:(id<ANTLRCharStream>)anInput{ if (nil!=(self = [super initWithCharStream:anInput])) { } return self;}- (void) dealloc{ [super dealloc];}- (NSString *) grammarFileName{ return @"FuzzyJava.gl";}- (ANTLRToken *) nextToken{ while (YES) { if ( [input LA:1] == ANTLRCharStreamEOF ) { return nil; // should really be a +eofToken call here -> go figure } [self setToken:nil]; tokenStartCharIndex = [self charIndex]; @try { int m = [input mark]; backtracking = 1; failed = NO; [self mTokens]; backtracking = 0; if ( failed ) { [input rewind:m]; [input consume]; } else { return token; } } @catch (ANTLRRecognitionException *re) { // shouldn't happen in backtracking mode, but... [self reportError:re]; [self recover:re]; } }}- (void) mIMPORT{ // token labels ANTLRToken * _name = nil; // token+rule list labels // rule labels // rule list labels // rule refs in alts with rewrites @try { ruleNestingLevel++; int _type = FuzzyJavaLexer_IMPORT; int _start = [self charIndex]; int _line = [self line]; int _charPosition = [self charPositionInLine]; int _channel = [ANTLRToken defaultChannel]; // FuzzyJava.gl:5:4: ( 'import' WS name= QIDStar ( WS )? ';' ) // ruleBlockSingleAlt // FuzzyJava.gl:5:4: 'import' WS name= QIDStar ( WS )? ';' // alt { [self matchString:@"import"]; if (failed) return ; [self mWS]; if (failed) return ; int _nameStart = [self charIndex]; [self mQIDStar]; if (failed) return ; _name = [[ANTLRCommonToken alloc] initWithInput:input tokenType:ANTLRTokenTypeInvalid channel:ANTLRTokenChannelDefault start:_nameStart stop:[self charIndex]]; [_name setLine:[self line]]; // FuzzyJava.gl:5:29: ( WS )? // block int alt1=2; { int LA1_0 = [input LA:1]; if ( (LA1_0>='\t' && LA1_0<='\n')||LA1_0==' ' ) { alt1 = 1; } } switch (alt1) { case 1 : // FuzzyJava.gl:5:29: WS // alt { [self mWS]; if (failed) return ; } break; } [self matchChar:';']; if (failed) return ; } if ( token == nil && ruleNestingLevel == 1) { [self emitTokenWithType:_type line:_line charPosition:_charPosition channel:_channel start:_start stop:[self charIndex]];} } @finally { ruleNestingLevel--; // rule cleanup // token labels [_name release]; // token+rule list labels // rule labels // rule refs in alts with rewrites if ( backtracking == 0 ) { } } return;}// $ANTLR end IMPORT- (void) mRETURN{ // token labels // token+rule list labels // rule labels // rule list labels // rule refs in alts with rewrites @try { ruleNestingLevel++; int _type = FuzzyJavaLexer_RETURN; int _start = [self charIndex]; int _line = [self line]; int _charPosition = [self charPositionInLine]; int _channel = [ANTLRToken defaultChannel]; // FuzzyJava.gl:10:4: ( 'return' ( options {greedy=false; } : . )* ';' ) // ruleBlockSingleAlt // FuzzyJava.gl:10:4: 'return' ( options {greedy=false; } : . )* ';' // alt { [self matchString:@"return"]; if (failed) return ; do { int alt2=2; { int LA2_0 = [input LA:1]; if ( LA2_0==';' ) { alt2 = 2; } else if ( (LA2_0>=0x0000 && LA2_0<=':')||(LA2_0>='<' && LA2_0<=0xFFFE) ) { alt2 = 1; } } switch (alt2) { case 1 : // FuzzyJava.gl:10:38: . // alt { [self matchAny]; if (failed) return ; } break; default : goto loop2; } } while (YES); loop2: ; [self matchChar:';']; if (failed) return ; } if ( token == nil && ruleNestingLevel == 1) { [self emitTokenWithType:_type line:_line charPosition:_charPosition channel:_channel start:_start stop:[self charIndex]];} } @finally { ruleNestingLevel--; // rule cleanup // token labels // token+rule list labels // rule labels // rule refs in alts with rewrites if ( backtracking == 0 ) { } } return;}// $ANTLR end RETURN- (void) mCLASS{ // token labels ANTLRToken * _name = nil; // token+rule list labels // rule labels // rule list labels // rule refs in alts with rewrites @try { ruleNestingLevel++; int _type = FuzzyJavaLexer_CLASS; int _start = [self charIndex]; int _line = [self line]; int _charPosition = [self charPositionInLine]; int _channel = [ANTLRToken defaultChannel]; // FuzzyJava.gl:14:4: ( 'class' WS name= ID ( WS )? ( 'extends' WS QID ( WS )? )? ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' ) // ruleBlockSingleAlt // FuzzyJava.gl:14:4: 'class' WS name= ID ( WS )? ( 'extends' WS QID ( WS )? )? ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' // alt { [self matchString:@"class"]; if (failed) return ; [self mWS]; if (failed) return ; int _nameStart = [self charIndex]; [self mID]; if (failed) return ; _name = [[ANTLRCommonToken alloc] initWithInput:input tokenType:ANTLRTokenTypeInvalid channel:ANTLRTokenChannelDefault start:_nameStart stop:[self charIndex]]; [_name setLine:[self line]]; // FuzzyJava.gl:14:23: ( WS )? // block int alt3=2; { int LA3_0 = [input LA:1]; if ( (LA3_0>='\t' && LA3_0<='\n')||LA3_0==' ' ) { alt3 = 1; } } switch (alt3) { case 1 : // FuzzyJava.gl:14:23: WS // alt { [self mWS]; if (failed) return ; } break; } // FuzzyJava.gl:14:27: ( 'extends' WS QID ( WS )? )? // block int alt5=2; { int LA5_0 = [input LA:1]; if ( LA5_0=='e' ) { alt5 = 1; } } switch (alt5) { case 1 : // FuzzyJava.gl:14:28: 'extends' WS QID ( WS )? // alt { [self matchString:@"extends"]; if (failed) return ; [self mWS]; if (failed) return ; [self mQID]; if (failed) return ; // FuzzyJava.gl:14:45: ( WS )? // block int alt4=2; { int LA4_0 = [input LA:1]; if ( (LA4_0>='\t' && LA4_0<='\n')||LA4_0==' ' ) { alt4 = 1; } } switch (alt4) { case 1 : // FuzzyJava.gl:14:45: WS // alt { [self mWS]; if (failed) return ; } break; } } break; } // FuzzyJava.gl:15:3: ( 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? // block int alt10=2; { int LA10_0 = [input LA:1]; if ( LA10_0=='i' ) { alt10 = 1; } } switch (alt10) { case 1 : // FuzzyJava.gl:15:4: 'implements' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* // alt { [self matchString:@"implements"]; if (failed) return ; [self mWS]; if (failed) return ; [self mQID]; if (failed) return ; // FuzzyJava.gl:15:24: ( WS )? // block int alt6=2; { int LA6_0 = [input LA:1]; if ( (LA6_0>='\t' && LA6_0<='\n')||LA6_0==' ' ) { alt6 = 1; } } switch (alt6) { case 1 : // FuzzyJava.gl:15:24: WS // alt { [self mWS]; if (failed) return ; } break; } do { int alt9=2; { int LA9_0 = [input LA:1]; if ( LA9_0==',' ) { alt9 = 1; } } switch (alt9) { case 1 : // FuzzyJava.gl:15:29: ',' ( WS )? QID ( WS )? // alt { [self matchChar:',']; if (failed) return ; // FuzzyJava.gl:15:33: ( WS )? // block int alt7=2; { int LA7_0 = [input LA:1]; if ( (LA7_0>='\t' && LA7_0<='\n')||LA7_0==' ' ) { alt7 = 1; } } switch (alt7) { case 1 : // FuzzyJava.gl:15:33: WS // alt { [self mWS]; if (failed) return ; } break; } [self mQID]; if (failed) return ; // FuzzyJava.gl:15:41: ( WS )? // block int alt8=2; { int LA8_0 = [input LA:1]; if ( (LA8_0>='\t' && LA8_0<='\n')||LA8_0==' ' ) { alt8 = 1; } } switch (alt8) { case 1 : // FuzzyJava.gl:15:41: WS // alt { [self mWS]; if (failed) return ; } break; } } break; default : goto loop9; } } while (YES); loop9: ; } break; } [self matchChar:'{']; if (failed) return ; if ( backtracking==1 ) { NSLog(@"found class %@", [_name text]); } } if ( token == nil && ruleNestingLevel == 1) { [self emitTokenWithType:_type line:_line charPosition:_charPosition channel:_channel start:_start stop:[self charIndex]];} } @finally { ruleNestingLevel--; // rule cleanup // token labels [_name release]; // token+rule list labels // rule labels // rule refs in alts with rewrites if ( backtracking == 0 ) { } } return;}// $ANTLR end CLASS- (void) mMETHOD{ // token labels ANTLRToken * _name = nil; // token+rule list labels // rule labels // rule list labels // rule refs in alts with rewrites @try { ruleNestingLevel++; int _type = FuzzyJavaLexer_METHOD; int _start = [self charIndex]; int _line = [self line]; int _charPosition = [self charPositionInLine]; int _channel = [ANTLRToken defaultChannel]; // FuzzyJava.gl:20:9: ( TYPE WS name= ID ( WS )? '(' ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? ')' ( WS )? ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' ) // ruleBlockSingleAlt // FuzzyJava.gl:20:9: TYPE WS name= ID ( WS )? '(' ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? ')' ( WS )? ( 'throws' WS QID ( WS )? ( ',' ( WS )? QID ( WS )? )* )? '{' // alt { [self mTYPE]; if (failed) return ; [self mWS]; if (failed) return ; int _nameStart = [self charIndex]; [self mID]; if (failed) return ; _name = [[ANTLRCommonToken alloc] initWithInput:input tokenType:ANTLRTokenTypeInvalid channel:ANTLRTokenChannelDefault start:_nameStart stop:[self charIndex]]; [_name setLine:[self line]]; // FuzzyJava.gl:20:25: ( WS )? // block int alt11=2; { int LA11_0 = [input LA:1]; if ( (LA11_0>='\t' && LA11_0<='\n')||LA11_0==' ' ) { alt11 = 1; } } switch (alt11) { case 1 : // FuzzyJava.gl:20:25: WS // alt { [self mWS]; if (failed) return ; } break; } [self matchChar:'(']; if (failed) return ; // FuzzyJava.gl:20:33: ( ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* )? // block int alt16=2; { int LA16_0 = [input LA:1]; if ( (LA16_0>='A' && LA16_0<='Z')||LA16_0=='_'||(LA16_0>='a' && LA16_0<='z') ) { alt16 = 1; } } switch (alt16) { case 1 : // FuzzyJava.gl:20:35: ARG ( WS )? ( ',' ( WS )? ARG ( WS )? )* // alt { [self mARG]; if (failed) return ; // FuzzyJava.gl:20:39: ( WS )? // block int alt12=2; { int LA12_0 = [input LA:1]; if ( (LA12_0>='\t' && LA12_0<='\n')||LA12_0==' ' ) { alt12 = 1; } } switch (alt12) { case 1 : // FuzzyJava.gl:20:39: WS // alt { [self mWS]; if (failed) return ; } break; } do { int alt15=2; { int LA15_0 = [input LA:1]; if ( LA15_0==',' ) { alt15 = 1; } } switch (alt15) { case 1 : // FuzzyJava.gl:20:44: ',' ( WS )? ARG ( WS )? // alt { [self matchChar:',']; if (failed) return ; // FuzzyJava.gl:20:48: ( WS )? // block int alt13=2; { int LA13_0 = [input LA:1]; if ( (LA13_0>='\t' && LA13_0<='\n')||LA13_0==' ' ) { alt13 = 1; } } switch (alt13) { case 1 : // FuzzyJava.gl:20:48: WS // alt { [self mWS]; if (failed) return ; } break; } [self mARG]; if (failed) return ; // FuzzyJava.gl:20:56: ( WS )? // block
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -