📄 simplecparser.m
字号:
break; case 25: alt7 = 3; break; case 21: alt7 = 5; break; default: { ANTLRNoViableAltException *nvae = [ANTLRNoViableAltException exceptionWithDecision:7 state:0 stream:input]; @throw nvae; }} switch (alt7) { case 1 : // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:58:7: forStat // alt { root_0 = (id)[adaptor emptyTree]; [following addObject:FOLLOW_forStat_in_stat449]; _forStat24 = [self forStat]; [following removeLastObject]; [adaptor addChild:[_forStat24 tree] toTree:root_0]; } break; case 2 : // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:59:7: expr ';'! // alt { root_0 = (id)[adaptor emptyTree]; [following addObject:FOLLOW_expr_in_stat457]; _expr25 = [self expr]; [following removeLastObject]; [adaptor addChild:[_expr25 tree] toTree:root_0]; _char_literal26=(ANTLRToken *)[input LT:1]; [_char_literal26 retain]; [self match:input tokenType:21 follow:FOLLOW_21_in_stat459]; } break; case 3 : // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:60:7: block // alt { root_0 = (id)[adaptor emptyTree]; [following addObject:FOLLOW_block_in_stat468]; _block27 = [self block]; [following removeLastObject]; [adaptor addChild:[_block27 tree] toTree:root_0]; } break; case 4 : // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:61:7: assignStat ';'! // alt { root_0 = (id)[adaptor emptyTree]; [following addObject:FOLLOW_assignStat_in_stat476]; _assignStat28 = [self assignStat]; [following removeLastObject]; [adaptor addChild:[_assignStat28 tree] toTree:root_0]; _char_literal29=(ANTLRToken *)[input LT:1]; [_char_literal29 retain]; [self match:input tokenType:21 follow:FOLLOW_21_in_stat478]; } break; case 5 : // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:62:7: ';'! // alt { root_0 = (id)[adaptor emptyTree]; _char_literal30=(ANTLRToken *)[input LT:1]; [_char_literal30 retain]; [self match:input tokenType:21 follow:FOLLOW_21_in_stat487]; } break; } } @catch (ANTLRRecognitionException *re) { [self reportError:re]; [self recover:input exception:re]; } @finally { // token labels [_char_literal26 release]; [_char_literal29 release]; [_char_literal30 release]; // token+rule list labels // rule labels [_forStat24 release]; [_expr25 release]; [_block27 release]; [_assignStat28 release]; // 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 stat// $ANTLR start forStat// /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:65:1: forStat : 'for' '(' start= assignStat ';' expr ';' next= assignStat ')' block -> ^( 'for' $start expr $next block ) ;- (SimpleCParser_forStat_return *) forStat{ SimpleCParser_forStat_return * _retval = [[SimpleCParser_forStat_return alloc] init]; [_retval setStart:[input LT:1]]; id root_0 = nil; ANTLRToken * _string_literal31 = nil; ANTLRToken * _char_literal32 = nil; ANTLRToken * _char_literal33 = nil; ANTLRToken * _char_literal35 = nil; ANTLRToken * _char_literal36 = nil; SimpleCParser_assignStat_return * _start = nil; SimpleCParser_assignStat_return * _next = nil; SimpleCParser_expr_return * _expr34 = nil; SimpleCParser_block_return * _block37 = nil; NSMutableArray *_list_expr = [[NSMutableArray alloc] init]; NSMutableArray *_list_assignStat = [[NSMutableArray alloc] init]; NSMutableArray *_list_block = [[NSMutableArray alloc] init]; NSMutableArray *_list_21 = [[NSMutableArray alloc] init]; NSMutableArray *_list_24 = [[NSMutableArray alloc] init]; NSMutableArray *_list_SimpleCParser_FOR = [[NSMutableArray alloc] init]; NSMutableArray *_list_22 = [[NSMutableArray alloc] init]; id _string_literal31_tree = nil; id _char_literal32_tree = nil; id _char_literal33_tree = nil; id _char_literal35_tree = nil; id _char_literal36_tree = nil; @try { // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:66:9: ( 'for' '(' start= assignStat ';' expr ';' next= assignStat ')' block -> ^( 'for' $start expr $next block ) ) // ruleBlockSingleAlt // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:66:9: 'for' '(' start= assignStat ';' expr ';' next= assignStat ')' block // alt { _string_literal31=(ANTLRToken *)[input LT:1]; [_string_literal31 retain]; [self match:input tokenType:SimpleCParser_FOR follow:FOLLOW_SimpleCParser_FOR_in_forStat507]; [_list_SimpleCParser_FOR addObject:_string_literal31]; _char_literal32=(ANTLRToken *)[input LT:1]; [_char_literal32 retain]; [self match:input tokenType:22 follow:FOLLOW_22_in_forStat509]; [_list_22 addObject:_char_literal32]; [following addObject:FOLLOW_assignStat_in_forStat513]; _start = [self assignStat]; [following removeLastObject]; [_list_assignStat addObject:[_start tree]]; _char_literal33=(ANTLRToken *)[input LT:1]; [_char_literal33 retain]; [self match:input tokenType:21 follow:FOLLOW_21_in_forStat515]; [_list_21 addObject:_char_literal33]; [following addObject:FOLLOW_expr_in_forStat517]; _expr34 = [self expr]; [following removeLastObject]; [_list_expr addObject:[_expr34 tree]]; _char_literal35=(ANTLRToken *)[input LT:1]; [_char_literal35 retain]; [self match:input tokenType:21 follow:FOLLOW_21_in_forStat519]; [_list_21 addObject:_char_literal35]; [following addObject:FOLLOW_assignStat_in_forStat523]; _next = [self assignStat]; [following removeLastObject]; [_list_assignStat addObject:[_next tree]]; _char_literal36=(ANTLRToken *)[input LT:1]; [_char_literal36 retain]; [self match:input tokenType:24 follow:FOLLOW_24_in_forStat525]; [_list_24 addObject:_char_literal36]; [following addObject:FOLLOW_block_in_forStat527]; _block37 = [self block]; [following removeLastObject]; [_list_block addObject:[_block37 tree]]; // AST REWRITE int i_0 = 0; [_retval setTree:root_0]; root_0 = (id)[adaptor emptyTree]; // 67:9: -> ^( 'for' $start expr $next block ) { // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:67:12: ^( 'for' $start expr $next block ) { id root_1 = (id)[adaptor emptyTree]; root_1 = (id)[adaptor makeToken:(ANTLRToken *)[_list_SimpleCParser_FOR objectAtIndex:i_0] parentOf:root_1]; [adaptor addChild:[_start tree] toTree:root_1]; [adaptor addChild:(id<ANTLRTree>)[_list_expr objectAtIndex:i_0] toTree:root_1]; [adaptor addChild:[_next tree] toTree:root_1]; [adaptor addChild:(id<ANTLRTree>)[_list_block 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 [_string_literal31 release]; [_char_literal32 release]; [_char_literal33 release]; [_char_literal35 release]; [_char_literal36 release]; // token+rule list labels // rule labels [_start release]; [_next release]; [_expr34 release]; [_block37 release]; // rule refs in alts with rewrites [_list_expr release]; [_list_assignStat release]; [_list_block release]; [_list_21 release]; [_list_24 release]; [_list_SimpleCParser_FOR release]; [_list_22 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 forStat// $ANTLR start assignStat// /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:70:1: assignStat : ID EQ expr -> ^( EQ ID expr ) ;- (SimpleCParser_assignStat_return *) assignStat{ SimpleCParser_assignStat_return * _retval = [[SimpleCParser_assignStat_return alloc] init]; [_retval setStart:[input LT:1]]; id root_0 = nil; ANTLRToken * _ID38 = nil; ANTLRToken * _EQ39 = nil; SimpleCParser_expr_return * _expr40 = nil; NSMutableArray *_list_expr = [[NSMutableArray alloc] init]; NSMutableArray *_list_SimpleCParser_EQ = [[NSMutableArray alloc] init]; NSMutableArray *_list_SimpleCParser_ID = [[NSMutableArray alloc] init]; id _ID38_tree = nil; id _EQ39_tree = nil; @try { // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:71:9: ( ID EQ expr -> ^( EQ ID expr ) ) // ruleBlockSingleAlt // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:71:9: ID EQ expr // alt { _ID38=(ANTLRToken *)[input LT:1]; [_ID38 retain]; [self match:input tokenType:SimpleCParser_ID follow:FOLLOW_SimpleCParser_ID_in_assignStat570]; [_list_SimpleCParser_ID addObject:_ID38]; _EQ39=(ANTLRToken *)[input LT:1]; [_EQ39 retain]; [self match:input tokenType:SimpleCParser_EQ follow:FOLLOW_SimpleCParser_EQ_in_assignStat572]; [_list_SimpleCParser_EQ addObject:_EQ39]; [following addObject:FOLLOW_expr_in_assignStat574]; _expr40 = [self expr]; [following removeLastObject]; [_list_expr addObject:[_expr40 tree]]; // AST REWRITE int i_0 = 0; [_retval setTree:root_0]; root_0 = (id)[adaptor emptyTree]; // 71:20: -> ^( EQ ID expr ) { // /Users/kroepke/Projects/antlr3/code/antlr/main/lib/ObjC/Framework/examples/simplecTreeParser/SimpleC.g:71:23: ^( EQ ID expr ) { id root_1 = (id)[adaptor emptyTree]; root_1 = (id)[adaptor makeToken:(ANTLRToken *)[_list_SimpleCParser_EQ objectAtIndex:i_0] parentOf:root_1]; [adaptor addTokenAsChild:(ANTLRToken *)[_list_SimpleCParser_ID objectAtIndex:i_0] toTree:root_1]; [adaptor addChild:(id<ANTLRTree>)[_list_expr 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 [_ID38 release]; [_EQ39 release]; // token+rule list labels // rule labels [_expr40 release]; // rule refs in alts with rewrites [_list_expr release]; [_list_SimpleCParser_EQ release]; [_list_SimpleCParser_ID release]; [_retval setStop:[input LT:-1]]; [_retval setTree:(id)[adaptor postProcessTree:root_0]]; [adaptor setBoundariesForTree:[_retval tree
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -