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

📄 simpleclexer.m

📁 antlr最新版本V3源代码
💻 M
📖 第 1 页 / 共 2 页
字号:
		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	}	return;}// $ANTLR end EQ- (void) mEQEQ{	// token labels	// token+rule list labels	// rule labels	// rule list labels	// rule refs in alts with rewrites	@try {		ruleNestingLevel++;		int _type = SimpleCLexer_EQEQ;		int _start = [self charIndex];		int _line = [self line];		int _charPosition = [self charPositionInLine];		int _channel = [ANTLRToken defaultChannel];		// SimpleC.g:103:8: ( '==' ) // ruleBlockSingleAlt		// SimpleC.g:103:8: '==' // alt		{		[self matchString:@"=="];		}		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	}	return;}// $ANTLR end EQEQ- (void) mLT{	// token labels	// token+rule list labels	// rule labels	// rule list labels	// rule refs in alts with rewrites	@try {		ruleNestingLevel++;		int _type = SimpleCLexer_LT;		int _start = [self charIndex];		int _line = [self line];		int _charPosition = [self charPositionInLine];		int _channel = [ANTLRToken defaultChannel];		// SimpleC.g:104:8: ( '<' ) // ruleBlockSingleAlt		// SimpleC.g:104:8: '<' // alt		{		[self matchChar:'<'];		}		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	}	return;}// $ANTLR end LT- (void) mPLUS{	// token labels	// token+rule list labels	// rule labels	// rule list labels	// rule refs in alts with rewrites	@try {		ruleNestingLevel++;		int _type = SimpleCLexer_PLUS;		int _start = [self charIndex];		int _line = [self line];		int _charPosition = [self charPositionInLine];		int _channel = [ANTLRToken defaultChannel];		// SimpleC.g:105:8: ( '+' ) // ruleBlockSingleAlt		// SimpleC.g:105:8: '+' // alt		{		[self matchChar:'+'];		}		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	}	return;}// $ANTLR end PLUS- (void) mWS{	// token labels	// token+rule list labels	// rule labels	// rule list labels	// rule refs in alts with rewrites	@try {		ruleNestingLevel++;		int _type = SimpleCLexer_WS;		int _start = [self charIndex];		int _line = [self line];		int _charPosition = [self charPositionInLine];		int _channel = [ANTLRToken defaultChannel];		// SimpleC.g:107:9: ( ( (' '|'\\t'|'\\r'|'\\n'))+ ) // ruleBlockSingleAlt		// SimpleC.g:107:9: ( (' '|'\\t'|'\\r'|'\\n'))+ // alt		{		// SimpleC.g:107:9: ( (' '|'\\t'|'\\r'|'\\n'))+	// positiveClosureBlock		int cnt3=0;		do {		    int alt3=2;		    {		    	int LA3_0 = [input LA:1];		    	if ( (LA3_0>='\t' && LA3_0<='\n')||LA3_0=='\r'||LA3_0==' ' ) {		    		alt3 = 1;		    	}		    }		    switch (alt3) {			case 1 :			    // SimpleC.g:107:13: (' '|'\\t'|'\\r'|'\\n') // alt			    {			    if (([input LA:1]>='\t' && [input LA:1]<='\n')||[input LA:1]=='\r'||[input LA:1]==' ') {			    	[input consume];			    } else {			    	ANTLRMismatchedSetException *mse = [ANTLRMismatchedSetException exceptionWithSet:nil stream:input];			    	[self recover:mse];	@throw mse;			    }			    }			    break;			default :			    if ( cnt3 >= 1 )  goto loop3;					ANTLREarlyExitException *eee = [ANTLREarlyExitException exceptionWithStream:input decisionNumber:3];					@throw eee;		    }		    cnt3++;		} while (YES); loop3: ;		 _channel=99; 		}		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	}	return;}// $ANTLR end WS- (void) mTokens{    // SimpleC.g:1:10: ( T21 | T22 | T23 | T24 | T25 | T26 | FOR | INT_TYPE | CHAR | VOID | ID | INT | EQ | EQEQ | LT | PLUS | WS ) //ruleblock    int alt4=17;    switch ([input LA:1]) {    	case ';':    		alt4 = 1;    		break;    	case '(':    		alt4 = 2;    		break;    	case ',':    		alt4 = 3;    		break;    	case ')':    		alt4 = 4;    		break;    	case '{':    		alt4 = 5;    		break;    	case '}':    		alt4 = 6;    		break;    	case 'f':    		{    			int LA4_7 = [input LA:2];    			if ( LA4_7=='o' ) {    				{    					int LA4_17 = [input LA:3];    					if ( LA4_17=='r' ) {    						{    							int LA4_23 = [input LA:4];    							if ( (LA4_23>='0' && LA4_23<='9')||(LA4_23>='A' && LA4_23<='Z')||LA4_23=='_'||(LA4_23>='a' && LA4_23<='z') ) {    								alt4 = 11;    							}    						else {    							alt4 = 7;	}    						}    					}    				else {    					alt4 = 11;	}    				}    			}    		else {    			alt4 = 11;	}    		}    		break;    	case 'i':    		{    			int LA4_8 = [input LA:2];    			if ( LA4_8=='n' ) {    				{    					int LA4_18 = [input LA:3];    					if ( LA4_18=='t' ) {    						{    							int LA4_24 = [input LA:4];    							if ( (LA4_24>='0' && LA4_24<='9')||(LA4_24>='A' && LA4_24<='Z')||LA4_24=='_'||(LA4_24>='a' && LA4_24<='z') ) {    								alt4 = 11;    							}    						else {    							alt4 = 8;	}    						}    					}    				else {    					alt4 = 11;	}    				}    			}    		else {    			alt4 = 11;	}    		}    		break;    	case 'c':    		{    			int LA4_9 = [input LA:2];    			if ( LA4_9=='h' ) {    				{    					int LA4_19 = [input LA:3];    					if ( LA4_19=='a' ) {    						{    							int LA4_25 = [input LA:4];    							if ( LA4_25=='r' ) {    								{    									int LA4_29 = [input LA:5];    									if ( (LA4_29>='0' && LA4_29<='9')||(LA4_29>='A' && LA4_29<='Z')||LA4_29=='_'||(LA4_29>='a' && LA4_29<='z') ) {    										alt4 = 11;    									}    								else {    									alt4 = 9;	}    								}    							}    						else {    							alt4 = 11;	}    						}    					}    				else {    					alt4 = 11;	}    				}    			}    		else {    			alt4 = 11;	}    		}    		break;    	case 'v':    		{    			int LA4_10 = [input LA:2];    			if ( LA4_10=='o' ) {    				{    					int LA4_20 = [input LA:3];    					if ( LA4_20=='i' ) {    						{    							int LA4_26 = [input LA:4];    							if ( LA4_26=='d' ) {    								{    									int LA4_30 = [input LA:5];    									if ( (LA4_30>='0' && LA4_30<='9')||(LA4_30>='A' && LA4_30<='Z')||LA4_30=='_'||(LA4_30>='a' && LA4_30<='z') ) {    										alt4 = 11;    									}    								else {    									alt4 = 10;	}    								}    							}    						else {    							alt4 = 11;	}    						}    					}    				else {    					alt4 = 11;	}    				}    			}    		else {    			alt4 = 11;	}    		}    		break;    	case 'A':    	case 'B':    	case 'C':    	case 'D':    	case 'E':    	case 'F':    	case 'G':    	case 'H':    	case 'I':    	case 'J':    	case 'K':    	case 'L':    	case 'M':    	case 'N':    	case 'O':    	case 'P':    	case 'Q':    	case 'R':    	case 'S':    	case 'T':    	case 'U':    	case 'V':    	case 'W':    	case 'X':    	case 'Y':    	case 'Z':    	case '_':    	case 'a':    	case 'b':    	case 'd':    	case 'e':    	case 'g':    	case 'h':    	case 'j':    	case 'k':    	case 'l':    	case 'm':    	case 'n':    	case 'o':    	case 'p':    	case 'q':    	case 'r':    	case 's':    	case 't':    	case 'u':    	case 'w':    	case 'x':    	case 'y':    	case 'z':    		alt4 = 11;    		break;    	case '0':    	case '1':    	case '2':    	case '3':    	case '4':    	case '5':    	case '6':    	case '7':    	case '8':    	case '9':    		alt4 = 12;    		break;    	case '=':    		{    			int LA4_13 = [input LA:2];    			if ( LA4_13=='=' ) {    				alt4 = 14;    			}    		else {    			alt4 = 13;	}    		}    		break;    	case '<':    		alt4 = 15;    		break;    	case '+':    		alt4 = 16;    		break;    	case '\t':    	case '\n':    	case '\r':    	case ' ':    		alt4 = 17;    		break;    default:     {        ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException exceptionWithDecision:4 state:0 stream:input];    	@throw nvae;    	}}    switch (alt4) {    	case 1 :    	    // SimpleC.g:1:10: T21 // alt    	    {    	    [self mT21];    	    }    	    break;    	case 2 :    	    // SimpleC.g:1:14: T22 // alt    	    {    	    [self mT22];    	    }    	    break;    	case 3 :    	    // SimpleC.g:1:18: T23 // alt    	    {    	    [self mT23];    	    }    	    break;    	case 4 :    	    // SimpleC.g:1:22: T24 // alt    	    {    	    [self mT24];    	    }    	    break;    	case 5 :    	    // SimpleC.g:1:26: T25 // alt    	    {    	    [self mT25];    	    }    	    break;    	case 6 :    	    // SimpleC.g:1:30: T26 // alt    	    {    	    [self mT26];    	    }    	    break;    	case 7 :    	    // SimpleC.g:1:34: FOR // alt    	    {    	    [self mFOR];    	    }    	    break;    	case 8 :    	    // SimpleC.g:1:38: INT_TYPE // alt    	    {    	    [self mINT_TYPE];    	    }    	    break;    	case 9 :    	    // SimpleC.g:1:47: CHAR // alt    	    {    	    [self mCHAR];    	    }    	    break;    	case 10 :    	    // SimpleC.g:1:52: VOID // alt    	    {    	    [self mVOID];    	    }    	    break;    	case 11 :    	    // SimpleC.g:1:57: ID // alt    	    {    	    [self mID];    	    }    	    break;    	case 12 :    	    // SimpleC.g:1:60: INT // alt    	    {    	    [self mINT];    	    }    	    break;    	case 13 :    	    // SimpleC.g:1:64: EQ // alt    	    {    	    [self mEQ];    	    }    	    break;    	case 14 :    	    // SimpleC.g:1:67: EQEQ // alt    	    {    	    [self mEQEQ];    	    }    	    break;    	case 15 :    	    // SimpleC.g:1:72: LT // alt    	    {    	    [self mLT];    	    }    	    break;    	case 16 :    	    // SimpleC.g:1:75: PLUS // alt    	    {    	    [self mPLUS];    	    }    	    break;    	case 17 :    	    // SimpleC.g:1:80: WS // alt    	    {    	    [self mWS];    	    }    	    break;    }}@end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -