📄 simplecparser.m
字号:
@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 + -