⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fuzzyjavalexer.m

📁 antlr最新版本V3源代码
💻 M
📖 第 1 页 / 共 4 页
字号:
// $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 + -