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

📄 symboltablelexer.m

📁 antlr最新版本V3源代码
💻 M
📖 第 1 页 / 共 2 页
字号:
	}	@finally {		ruleNestingLevel--;        // rule cleanup		// token labels		// token+rule list labels		// rule labels		// rule refs in alts with rewrites	}	return;}// $ANTLR end ID- (void) mINT{	// token labels	// token+rule list labels	// rule labels	// rule list labels	// rule refs in alts with rewrites	@try {		ruleNestingLevel++;		int _type = SymbolTableLexer_INT;		int _start = [self charIndex];		int _line = [self line];		int _charPosition = [self charPositionInLine];		int _channel = [ANTLRToken defaultChannel];		// SymbolTable.g:69:9: ( ( '0' .. '9' )+ ) // ruleBlockSingleAlt		// SymbolTable.g:69:9: ( '0' .. '9' )+ // alt		{		// SymbolTable.g:69:9: ( '0' .. '9' )+	// positiveClosureBlock		int cnt2=0;		do {		    int alt2=2;		    {		    	int LA2_0 = [input LA:1];		    	if ( (LA2_0>='0' && LA2_0<='9') ) {		    		alt2 = 1;		    	}		    }		    switch (alt2) {			case 1 :			    // SymbolTable.g:69:10: '0' .. '9' // alt			    {			    [self matchRangeFromChar:'0' to:'9'];			    }			    break;			default :			    if ( cnt2 >= 1 )  goto loop2;					ANTLREarlyExitException *eee = [ANTLREarlyExitException exceptionWithStream:input decisionNumber:2];					@throw eee;		    }		    cnt2++;		} while (YES); loop2: ;		}		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 INT- (void) mWS{	// token labels	// token+rule list labels	// rule labels	// rule list labels	// rule refs in alts with rewrites	@try {		ruleNestingLevel++;		int _type = SymbolTableLexer_WS;		int _start = [self charIndex];		int _line = [self line];		int _charPosition = [self charPositionInLine];		int _channel = [ANTLRToken defaultChannel];		// SymbolTable.g:72:9: ( ( (' '|'\\n'|'\\r'))+ ) // ruleBlockSingleAlt		// SymbolTable.g:72:9: ( (' '|'\\n'|'\\r'))+ // alt		{		// SymbolTable.g:72:9: ( (' '|'\\n'|'\\r'))+	// positiveClosureBlock		int cnt3=0;		do {		    int alt3=2;		    {		    	int LA3_0 = [input LA:1];		    	if ( LA3_0=='\n'||LA3_0=='\r'||LA3_0==' ' ) {		    		alt3 = 1;		    	}		    }		    switch (alt3) {			case 1 :			    // SymbolTable.g:72:10: (' '|'\\n'|'\\r') // alt			    {			    if ([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{    // SymbolTable.g:1:10: ( T7 | T8 | T9 | T10 | T11 | T12 | T13 | T14 | ID | INT | WS ) //ruleblock    int alt4=11;    switch ([input LA:1]) {    	case 'm':    		{    			int LA4_1 = [input LA:2];    			if ( LA4_1=='e' ) {    				{    					int LA4_12 = [input LA:3];    					if ( LA4_12=='t' ) {    						{    							int LA4_14 = [input LA:4];    							if ( LA4_14=='h' ) {    								{    									int LA4_16 = [input LA:5];    									if ( LA4_16=='o' ) {    										{    											int LA4_18 = [input LA:6];    											if ( LA4_18=='d' ) {    												{    													int LA4_19 = [input LA:7];    													if ( (LA4_19>='a' && LA4_19<='z') ) {    														alt4 = 9;    													}    												else {    													alt4 = 1;	}    												}    											}    										else {    											alt4 = 9;	}    										}    									}    								else {    									alt4 = 9;	}    								}    							}    						else {    							alt4 = 9;	}    						}    					}    				else {    					alt4 = 9;	}    				}    			}    		else {    			alt4 = 9;	}    		}    		break;    	case '(':    		alt4 = 2;    		break;    	case ')':    		alt4 = 3;    		break;    	case '{':    		alt4 = 4;    		break;    	case '}':    		alt4 = 5;    		break;    	case '=':    		alt4 = 6;    		break;    	case ';':    		alt4 = 7;    		break;    	case 'i':    		{    			int LA4_8 = [input LA:2];    			if ( LA4_8=='n' ) {    				{    					int LA4_13 = [input LA:3];    					if ( LA4_13=='t' ) {    						{    							int LA4_15 = [input LA:4];    							if ( (LA4_15>='a' && LA4_15<='z') ) {    								alt4 = 9;    							}    						else {    							alt4 = 8;	}    						}    					}    				else {    					alt4 = 9;	}    				}    			}    		else {    			alt4 = 9;	}    		}    		break;    	case 'a':    	case 'b':    	case 'c':    	case 'd':    	case 'e':    	case 'f':    	case 'g':    	case 'h':    	case 'j':    	case 'k':    	case 'l':    	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':    		alt4 = 9;    		break;    	case '0':    	case '1':    	case '2':    	case '3':    	case '4':    	case '5':    	case '6':    	case '7':    	case '8':    	case '9':    		alt4 = 10;    		break;    	case '\n':    	case '\r':    	case ' ':    		alt4 = 11;    		break;    default:     {        ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException exceptionWithDecision:4 state:0 stream:input];    	@throw nvae;    	}}    switch (alt4) {    	case 1 :    	    // SymbolTable.g:1:10: T7 // alt    	    {    	    [self mT7];    	    }    	    break;    	case 2 :    	    // SymbolTable.g:1:13: T8 // alt    	    {    	    [self mT8];    	    }    	    break;    	case 3 :    	    // SymbolTable.g:1:16: T9 // alt    	    {    	    [self mT9];    	    }    	    break;    	case 4 :    	    // SymbolTable.g:1:19: T10 // alt    	    {    	    [self mT10];    	    }    	    break;    	case 5 :    	    // SymbolTable.g:1:23: T11 // alt    	    {    	    [self mT11];    	    }    	    break;    	case 6 :    	    // SymbolTable.g:1:27: T12 // alt    	    {    	    [self mT12];    	    }    	    break;    	case 7 :    	    // SymbolTable.g:1:31: T13 // alt    	    {    	    [self mT13];    	    }    	    break;    	case 8 :    	    // SymbolTable.g:1:35: T14 // alt    	    {    	    [self mT14];    	    }    	    break;    	case 9 :    	    // SymbolTable.g:1:39: ID // alt    	    {    	    [self mID];    	    }    	    break;    	case 10 :    	    // SymbolTable.g:1:42: INT // alt    	    {    	    [self mINT];    	    }    	    break;    	case 11 :    	    // SymbolTable.g:1:46: WS // alt    	    {    	    [self mWS];    	    }    	    break;    }}@end

⌨️ 快捷键说明

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