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

📄 simplecparser.m

📁 ANTLR(ANother Tool for Language Recognition)它是这样的一种工具
💻 M
📖 第 1 页 / 共 5 页
字号:
	@finally {		// token labels		[_char_literal4 release];		// token+rule list labels		// rule labels		[_variable2 release];		[_functionHeader3 release];		[_functionHeader5 release];		[_block6 release];		// rule refs in alts with rewrites		[_list_functionHeader release];		[_list_block release];		[_list_21 release];		[_retval setStop:[input LT:-1]];		    [_retval setTree:(id)[adaptor postProcessTree:root_0]];		    [adaptor setBoundariesForTree:[_retval tree] fromToken:[_retval start] toToken:[_retval stop]];	}	return _retval;}// $ANTLR end declaration// $ANTLR start variable// /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:26:1: variable : type declarator ';' -> ^( VAR_DEF type declarator ) ;- (SimpleCParser_variable_return *) variable{    SimpleCParser_variable_return * _retval = [[SimpleCParser_variable_return alloc] init];     [_retval setStart:[input LT:1]];    id root_0 = nil;    ANTLRToken * _char_literal9 = nil;    SimpleCParser_type_return * _type7 = nil;    SimpleCParser_declarator_return * _declarator8 = nil;    NSMutableArray *_list_type = [[NSMutableArray alloc] init];    NSMutableArray *_list_declarator = [[NSMutableArray alloc] init];    NSMutableArray *_list_21 = [[NSMutableArray alloc] init];    id _char_literal9_tree = nil;    @try {        // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:27:9: ( type declarator ';' -> ^( VAR_DEF type declarator ) ) // ruleBlockSingleAlt        // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:27:9: type declarator ';' // alt        {        [following addObject:FOLLOW_type_in_variable166];        _type7 = [self type];        [following removeLastObject];        [_list_type addObject:[_type7 tree]];        [following addObject:FOLLOW_declarator_in_variable168];        _declarator8 = [self declarator];        [following removeLastObject];        [_list_declarator addObject:[_declarator8 tree]];        _char_literal9=(ANTLRToken *)[input LT:1];        [_char_literal9 retain];        [self match:input tokenType:21 follow:FOLLOW_21_in_variable170];         [_list_21 addObject:_char_literal9];        // AST REWRITE        int i_0 = 0;        [_retval setTree:root_0];        root_0 = (id)[adaptor emptyTree];        // 27:29: -> ^( VAR_DEF type declarator )        {            // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:27:32: ^( VAR_DEF type declarator )            {            id root_1 = (id)[adaptor emptyTree];            root_1 = (id)[adaptor makeNode:[adaptor newTreeWithTokenType:SimpleCParser_VAR_DEF text:[tokenNames objectAtIndex:SimpleCParser_VAR_DEF]] parentOf:root_1];            [adaptor addChild:(id<ANTLRTree>)[_list_type objectAtIndex:i_0] toTree:root_1];            [adaptor addChild:(id<ANTLRTree>)[_list_declarator objectAtIndex:i_0] toTree:root_1];            [adaptor addChild:root_1 toTree:root_0];            }        }        }    }	@catch (ANTLRRecognitionException *re) {		[self reportError:re];		[self recover:input exception:re];	}	@finally {		// token labels		[_char_literal9 release];		// token+rule list labels		// rule labels		[_type7 release];		[_declarator8 release];		// rule refs in alts with rewrites		[_list_type release];		[_list_declarator release];		[_list_21 release];		[_retval setStop:[input LT:-1]];		    [_retval setTree:(id)[adaptor postProcessTree:root_0]];		    [adaptor setBoundariesForTree:[_retval tree] fromToken:[_retval start] toToken:[_retval stop]];	}	return _retval;}// $ANTLR end variable// $ANTLR start declarator// /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:30:1: declarator : ID ;- (SimpleCParser_declarator_return *) declarator{    SimpleCParser_declarator_return * _retval = [[SimpleCParser_declarator_return alloc] init];     [_retval setStart:[input LT:1]];    id root_0 = nil;    ANTLRToken * _ID10 = nil;    id _ID10_tree = nil;    @try {        // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:31:9: ( ID ) // ruleBlockSingleAlt        // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:31:9: ID // alt        {        root_0 = (id)[adaptor emptyTree];        _ID10=(ANTLRToken *)[input LT:1];        [_ID10 retain];        [self match:input tokenType:SimpleCParser_ID follow:FOLLOW_SimpleCParser_ID_in_declarator199];         _ID10_tree = (id)[adaptor newTreeWithToken:_ID10];        [adaptor addChild:_ID10_tree toTree:root_0];        }    }	@catch (ANTLRRecognitionException *re) {		[self reportError:re];		[self recover:input exception:re];	}	@finally {		// token labels		[_ID10 release];		// token+rule list labels		// rule labels		// rule refs in alts with rewrites		[_retval setStop:[input LT:-1]];		    [_retval setTree:(id)[adaptor postProcessTree:root_0]];		    [adaptor setBoundariesForTree:[_retval tree] fromToken:[_retval start] toToken:[_retval stop]];	}	return _retval;}// $ANTLR end declarator// $ANTLR start functionHeader// /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:34:1: functionHeader : type ID '(' ( formalParameter ( ',' formalParameter )* )? ')' -> ^( FUNC_HDR type ID ( formalParameter )+ ) ;- (SimpleCParser_functionHeader_return *) functionHeader{    SimpleCParser_functionHeader_return * _retval = [[SimpleCParser_functionHeader_return alloc] init];     [_retval setStart:[input LT:1]];    id root_0 = nil;    ANTLRToken * _ID12 = nil;    ANTLRToken * _char_literal13 = nil;    ANTLRToken * _char_literal15 = nil;    ANTLRToken * _char_literal17 = nil;    SimpleCParser_type_return * _type11 = nil;    SimpleCParser_formalParameter_return * _formalParameter14 = nil;    SimpleCParser_formalParameter_return * _formalParameter16 = nil;    NSMutableArray *_list_formalParameter = [[NSMutableArray alloc] init];    NSMutableArray *_list_type = [[NSMutableArray alloc] init];    NSMutableArray *_list_24 = [[NSMutableArray alloc] init];    NSMutableArray *_list_SimpleCParser_ID = [[NSMutableArray alloc] init];    NSMutableArray *_list_22 = [[NSMutableArray alloc] init];    NSMutableArray *_list_23 = [[NSMutableArray alloc] init];    id _ID12_tree = nil;    id _char_literal13_tree = nil;    id _char_literal15_tree = nil;    id _char_literal17_tree = nil;    @try {        // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:35:9: ( type ID '(' ( formalParameter ( ',' formalParameter )* )? ')' -> ^( FUNC_HDR type ID ( formalParameter )+ ) ) // ruleBlockSingleAlt        // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:35:9: type ID '(' ( formalParameter ( ',' formalParameter )* )? ')' // alt        {        [following addObject:FOLLOW_type_in_functionHeader219];        _type11 = [self type];        [following removeLastObject];        [_list_type addObject:[_type11 tree]];        _ID12=(ANTLRToken *)[input LT:1];        [_ID12 retain];        [self match:input tokenType:SimpleCParser_ID follow:FOLLOW_SimpleCParser_ID_in_functionHeader221];         [_list_SimpleCParser_ID addObject:_ID12];        _char_literal13=(ANTLRToken *)[input LT:1];        [_char_literal13 retain];        [self match:input tokenType:22 follow:FOLLOW_22_in_functionHeader223];         [_list_22 addObject:_char_literal13];        // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:35:21: ( formalParameter ( ',' formalParameter )* )? // block        int alt4=2;        {        	int LA4_0 = [input LA:1];        	if ( LA4_0==SimpleCParser_ID||(LA4_0>=SimpleCParser_INT_TYPE && LA4_0<=SimpleCParser_VOID) ) {        		alt4 = 1;        	}        }        switch (alt4) {        	case 1 :        	    // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:35:23: formalParameter ( ',' formalParameter )* // alt        	    {        	    [following addObject:FOLLOW_formalParameter_in_functionHeader227];        	    _formalParameter14 = [self formalParameter];        	    [following removeLastObject];        	    [_list_formalParameter addObject:[_formalParameter14 tree]];        	    do {        	        int alt3=2;        	        {        	        	int LA3_0 = [input LA:1];        	        	if ( LA3_0==23 ) {        	        		alt3 = 1;        	        	}        	        }        	        switch (alt3) {        	    	case 1 :        	    	    // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:35:41: ',' formalParameter // alt        	    	    {        	    	    _char_literal15=(ANTLRToken *)[input LT:1];        	    	    [_char_literal15 retain];        	    	    [self match:input tokenType:23 follow:FOLLOW_23_in_functionHeader231];         	    	    [_list_23 addObject:_char_literal15];        	    	    [following addObject:FOLLOW_formalParameter_in_functionHeader233];        	    	    _formalParameter16 = [self formalParameter];        	    	    [following removeLastObject];        	    	    [_list_formalParameter addObject:[_formalParameter16 tree]];        	    	    }        	    	    break;        	    	default :        	    	    goto loop3;        	        }        	    } while (YES); loop3: ;        	    }        	    break;        }        _char_literal17=(ANTLRToken *)[input LT:1];        [_char_literal17 retain];        [self match:input tokenType:24 follow:FOLLOW_24_in_functionHeader241];         [_list_24 addObject:_char_literal17];        // AST REWRITE        int i_0 = 0;        [_retval setTree:root_0];        root_0 = (id)[adaptor emptyTree];        // 36:9: -> ^( FUNC_HDR type ID ( formalParameter )+ )        {            // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:36:12: ^( FUNC_HDR type ID ( formalParameter )+ )            {            id root_1 = (id)[adaptor emptyTree];            root_1 = (id)[adaptor makeNode:[adaptor newTreeWithTokenType:SimpleCParser_FUNC_HDR text:[tokenNames objectAtIndex:SimpleCParser_FUNC_HDR]] parentOf:root_1];            [adaptor addChild:(id<ANTLRTree>)[_list_type objectAtIndex:i_0] toTree:root_1];            [adaptor addTokenAsChild:(ANTLRToken *)[_list_SimpleCParser_ID objectAtIndex:i_0] toTree:root_1];            // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:36:31: ( formalParameter )+            {            int n_1 = _list_formalParameter == nil ? 0 : [_list_formalParameter count];                         if ( n_1==0 ) @throw [NSException exceptionWithName:@"ANTLRTreeRewriteException" reason:@"Must have more than one element for (...)+ loops" userInfo:nil];            int i_1;            for (i_1=0; i_1<n_1; i_1++) {                [adaptor addChild:(id<ANTLRTree>)[_list_formalParameter objectAtIndex:i_1] toTree:root_1];            }            }            [adaptor addChild:root_1 toTree:root_0];            }        }        }    }	@catch (ANTLRRecognitionException *re) {		[self reportError:re];		[self recover:input exception:re];	}	@finally {		// token labels		[_ID12 release];		[_char_literal13 release];		[_char_literal15 release];		[_char_literal17 release];		// token+rule list labels		// rule labels		[_type11 release];		[_formalParameter14 release];		[_formalParameter16 release];		// rule refs in alts with rewrites		[_list_formalParameter release];		[_list_type release];		[_list_24 release];		[_list_SimpleCParser_ID release];		[_list_22 release];		[_list_23 release];		[_retval setStop:[input LT:-1]];		    [_retval setTree:(id)[adaptor postProcessTree:root_0]];		    [adaptor setBoundariesForTree:[_retval tree] fromToken:[_retval start] toToken:[_retval stop]];	}	return _retval;}// $ANTLR end functionHeader// $ANTLR start formalParameter// /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:39:1: formalParameter : type declarator -> ^( ARG_DEF type declarator ) ;- (SimpleCParser_formalParameter_return *) formalParameter{    SimpleCParser_formalParameter_return * _retval = [[SimpleCParser_formalParameter_return alloc] init];     [_retval setStart:[input LT:1]];

⌨️ 快捷键说明

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