📄 trafo.c
字号:
/* line 567 "java.puma" */ acc = acc_save; } return; } case kselect: if (yyP16->select.expression->Kind == kthis) {/* line 569 "java.puma" */ { tTree class; tTree object; register tTree yyV1; {/* line 570 "java.puma" *//* line 570 "java.puma" */ class = get_current_class (yyP16->select.env);/* line 571 "java.puma" *//* line 572 "java.puma" */ if (! (class != NULL && class -> Kind == kclass)) goto yyL45; {/* line 573 "java.puma" */ object = IdentifyLocal (yyP16->select.ident, class->type_decl.block -> field_list . env);/* line 574 "java.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yqualification,MakeTree,yyV1,kqualification,Tree_InitHead) yyV1->qualification.pos = yyP16->select.pos; yyV1->qualification.env = yyP16->select.env; yyV1->qualification.object = object; {register tTree yyW1; yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yident,MakeTree,yyW1,kident,Tree_InitHead) yyV1->qualification.qualified_symbol = yyW1; begintPosition (yyW1->ident.pos) begintTree (yyW1->ident.env) {register tTree yyW2; yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyW2,kobject,Tree_InitHead) yyW1->ident.object = yyW2; yyW2->object.object = class; yyW2->object.ident = class->type_decl.ident; begintTree (yyW2->object.next) begintTree (yyW2->object.collision) } yyW1->ident.ident = class->type_decl.ident; } yyV1->qualification.ident = yyP16->select.ident; use_object (yyV1); } } return; }yyL45:; } if (yyP16->select.expression->Kind == ksuper) {/* line 578 "java.puma" */ { tTree class; tTree object; register tTree yyV1; {/* line 579 "java.puma" *//* line 579 "java.puma" */ class = get_current_class (yyP16->select.env);/* line 580 "java.puma" *//* line 581 "java.puma" */ if (! (class != NULL && class -> Kind == kclass)) goto yyL46; {/* line 582 "java.puma" */ if (! (class -> class . extends -> Kind == knamed_type)) goto yyL46; {/* line 583 "java.puma" */ if (! (class -> class . extends -> named_type . qualified_symbol -> qualified_symbol . object != nnoobject)) goto yyL46; {/* line 584 "java.puma" */ class = class -> class . extends -> named_type . qualified_symbol -> qualified_symbol . object -> object . object;/* line 585 "java.puma" */ if (! ((Tree_IsType (class, ktype_decl)))) goto yyL46; {/* line 586 "java.puma" */ object = IdentifyLocal (yyP16->select.ident, class->type_decl.block -> field_list . env);/* line 587 "java.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yqualification,MakeTree,yyV1,kqualification,Tree_InitHead) yyV1->qualification.pos = yyP16->select.pos; yyV1->qualification.env = yyP16->select.env; yyV1->qualification.object = object; {register tTree yyW1; yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yident,MakeTree,yyW1,kident,Tree_InitHead) yyV1->qualification.qualified_symbol = yyW1; begintPosition (yyW1->ident.pos) begintTree (yyW1->ident.env) {register tTree yyW2; yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyW2,kobject,Tree_InitHead) yyW1->ident.object = yyW2; yyW2->object.object = class; yyW2->object.ident = class->type_decl.ident; begintTree (yyW2->object.next) begintTree (yyW2->object.collision) } yyW1->ident.ident = class->type_decl.ident; } yyV1->qualification.ident = yyP16->select.ident; use_object (yyV1); } } } } } return; }yyL46:; }/* line 591 "java.puma" */ { short no_of_args_save; {/* line 592 "java.puma" *//* line 592 "java.puma" */ no_of_args_save = no_of_args;/* line 592 "java.puma" */ no_of_args = - 1;/* line 593 "java.puma" */ Traverse (yyP16->select.expression);/* line 594 "java.puma" */ no_of_args = no_of_args_save;/* line 595 "java.puma" */ put_cross_ref (no_of_args >= 0 ? PAF_REF_TO_MBR_FUNC : PAF_REF_TO_MBR_VAR, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL, cur_class_ptr, cur_method_ptr, cur_arg_types_ptr, "?", GetCStr (yyP16->select.ident), null, current_file, (int) yyP16->select.pos . Line, acc); } return; } case kget_class_of_expr:/* line 600 "java.puma" */ { short no_of_args_save; {/* line 601 "java.puma" *//* line 601 "java.puma" */ no_of_args_save = no_of_args;/* line 601 "java.puma" */ no_of_args = - 1;/* line 602 "java.puma" */ Traverse (yyP16->get_class_of_expr.expression);/* line 603 "java.puma" */ no_of_args = no_of_args_save; } return; } case kget_class:/* line 605 "java.puma" */ {/* line 606 "java.puma" */ yyP16 = yyP16->get_class.type; goto yyRecursion; } case ksubscript:/* line 608 "java.puma" */ { int acc_save; {/* line 609 "java.puma" */ Traverse (yyP16->subscript.base);/* line 610 "java.puma" *//* line 610 "java.puma" */ acc_save = acc;/* line 610 "java.puma" */ acc = PAF_REF_READ;/* line 611 "java.puma" */ Traverse (yyP16->subscript.index);/* line 612 "java.puma" */ acc = acc_save; } return; } case ktype_compare:/* line 614 "java.puma" */ {/* line 615 "java.puma" */ Traverse (yyP16->type_compare.expression);/* line 616 "java.puma" */ yyP16 = yyP16->type_compare.type; goto yyRecursion; } case ktype_cast:/* line 618 "java.puma" */ {/* line 619 "java.puma" */ Traverse (yyP16->type_cast.type);/* line 620 "java.puma" */ yyP16 = yyP16->type_cast.expression; goto yyRecursion; } case knew:/* line 622 "java.puma" */ {/* line 623 "java.puma" */ Traverse (yyP16->new.type);/* line 624 "java.puma" */ Traverse (yyP16->new.expression_list);/* line 625 "java.puma" */ yyP16 = yyP16->new.expression; goto yyRecursion; } case kanonymous:/* line 627 "java.puma" */ { tString prev_class; {/* line 628 "java.puma" */ Traverse (yyP16->anonymous.type);/* line 629 "java.puma" */ Traverse (yyP16->anonymous.expression_list);/* line 630 "java.puma" *//* line 630 "java.puma" */ prev_class = cur_class_ptr;/* line 631 "java.puma" */ cur_class_ptr = s_anonymous;/* line 632 "java.puma" */ Traverse (yyP16->anonymous.block);/* line 633 "java.puma" */ cur_class_ptr = prev_class; } return; } case kconditional:/* line 635 "java.puma" */ {/* line 636 "java.puma" */ Traverse (yyP16->conditional.condition);/* line 637 "java.puma" */ Traverse (yyP16->conditional.true_expr);/* line 638 "java.puma" */ yyP16 = yyP16->conditional.false_expr; goto yyRecursion; } };}static void Tqualification#if defined __STDC__ | defined __cplusplus(register tTree yyP17)#else(yyP17) register tTree yyP17;#endif{ if (yyP17->Kind == kqualification) {/* line 643 "java.puma" */ { short no_of_args_save; {/* line 644 "java.puma" *//* line 644 "java.puma" */ no_of_args_save = no_of_args;/* line 644 "java.puma" */ no_of_args = - 1;/* line 645 "java.puma" */ Tqualification (yyP17->qualification.qualified_symbol);/* line 646 "java.puma" */ no_of_args = no_of_args_save;/* line 647 "java.puma" */ use_object (yyP17); } return; } } if (yyP17->Kind == kident) {/* line 649 "java.puma" */ {/* line 650 "java.puma" */ use_object (yyP17); } return; };}static void Tclass#if defined __STDC__ | defined __cplusplus(register tTree yyP18)#else(yyP18) register tTree yyP18;#endif{ yyRecursion: if (yyP18->Kind == kident) {/* line 655 "java.puma" */ {/* line 656 "java.puma" */ yyP18->ident.object = IdentifyWhole (yyP18->ident.ident, yyP18->ident.env);/* line 657 "java.puma" */ put_cross_ref (PAF_REF_TO_CLASS, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL, cur_class_ptr, cur_method_ptr, cur_arg_types_ptr, null, GetCStr (yyP18->ident.ident), null, current_file, (int) yyP18->ident.pos . Line, PAF_REF_READ); } return; } if (yyP18->Kind == kqualification) {/* line 661 "java.puma" */ {/* line 662 "java.puma" */ to_types (yyP18, ref_sym);/* line 663 "java.puma" */ put_cross_ref (PAF_REF_TO_CLASS, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL, cur_class_ptr, cur_method_ptr, cur_arg_types_ptr, null, ref_sym, null, current_file, (int) yyP18->qualification.pos . Line, PAF_REF_READ); } return; } if (yyP18->Kind == ktype_name) {/* line 667 "java.puma" */ {/* line 668 "java.puma" */ Tclass (yyP18->type_name.named_type->named_type.qualified_symbol);/* line 669 "java.puma" */ yyP18 = yyP18->type_name.next; goto yyRecursion; } };}static void Texception#if defined __STDC__ | defined __cplusplus(register tTree yyP19)#else(yyP19) register tTree yyP19;#endif{ yyRecursion: if (yyP19->Kind == knamed_type) {/* line 677 "java.puma" */ {/* line 678 "java.puma" */ yyP19 = yyP19->named_type.qualified_symbol; goto yyRecursion; } } if (yyP19->Kind == karray_type) {/* line 680 "java.puma" */ {/* line 681 "java.puma" */ yyP19 = yyP19->array_type.type; goto yyRecursion; } } if (Tree_IsType (yyP19, kqualified_symbol)) {/* line 683 "java.puma" */ {/* line 684 "java.puma" */ to_types (yyP19, ref_sym);/* line 685 "java.puma" */ put_cross_ref (PAF_REF_TO_EXCEPTION, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL, cur_class_ptr, cur_method_ptr, cur_arg_types_ptr, null, ref_sym, null, current_file, (int) yyP19->qualified_symbol.pos . Line, acc); } return; } if (yyP19->Kind == ktype_name) {/* line 689 "java.puma" */ {/* line 690 "java.puma" */ Texception (yyP19->type_name.named_type);/* line 691 "java.puma" */ yyP19 = yyP19->type_name.next; goto yyRecursion; } };}static tTree Tidentify#if defined __STDC__ | defined __cplusplus(register tTree yyP20)#else(yyP20) register tTree yyP20;#endif{ if (yyP20->Kind == kqualification) {/* line 696 "java.puma" */ { short no_of_args_save; tTree id_obj; {/* line 697 "java.puma" *//* line 697 "java.puma" */ no_of_args_save = no_of_args;/* line 697 "java.puma" */ no_of_args = - 1;/* line 698 "java.puma" *//* line 698 "java.puma" */ id_obj = Tidentify (yyP20->qualification.qualified_symbol);/* line 699 "java.puma" */ no_of_args = no_of_args_save;/* line 700 "java.puma" */ if (yyP20->qualification.qualified_symbol->qualified_symbol.object != nnoobject) { tTree obj = yyP20->qualification.qualified_symbol->qualified_symbol.object->object.object; switch (obj->Kind) { case kvariable : case kparameter : if (obj->decl.type->Kind != knamed_type) break; obj = obj->decl.type->named_type.qualified_symbol; if (obj->qualified_symbol.object == nnoobject) { if (obj->Kind != kident) break; obj->ident.object = IdentifyWhole (obj->ident.ident, obj->ident.env); if (obj->ident.object == nnoobject) break; } obj = obj->qualified_symbol.object->object.object; if (! Tree_IsType (obj, ktype_decl)) break; case kclass : case kinterface : if (no_of_args >= 0) yyP20->qualification.object = IdentifyMethod (yyP20->qualification.ident, obj->type_decl.block->field_list.env, no_of_args); else yyP20->qualification.object = IdentifyLocal (yyP20->qualification.ident, obj->type_decl.block->field_list.env); } } } { return id_obj; } } } if (yyP20->Kind == kident) {/* line 726 "java.puma" */ {/* line 727 "java.puma" */ if (! (no_of_args >= 0)) goto yyL2; {/* line 728 "java.puma" */ yyP20->ident.object = IdentifyMethod (yyP20->ident.ident, yyP20->ident.env, no_of_args); } } return yyP20->ident.object;yyL2:;/* line 731 "java.puma" */ {/* line 732 "java.puma" */ yyP20->ident.object = IdentifyWhole (yyP20->ident.ident, yyP20->ident.env); } return yyP20->ident.object; }/* line 735 "java.puma" */ return nnoobject;}void BeginTrafo ARGS ((void)){}void CloseTrafo ARGS ((void)){}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -