📄 itcl.c
字号:
register tTree yyV1; {/* line 678 "itcl.puma" */ e2 = get_namespace (w->one_word.env);/* line 679 "itcl.puma" */ obj = IdentifyLocal (w->one_word.ident, e2 -> env . objects);/* line 680 "itcl.puma" */ if (! (obj != NULL)) goto yyL2; {/* line 681 "itcl.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyV1,kobject,Tree_InitHead) yyV1->object.object = obj -> object . object; yyV1->object.ident = w->one_word.ident; yyV1->object.next = w->one_word.env -> env . objects; w->one_word.env -> env . objects = yyV1;/* line 682 "itcl.puma" */ use (w->one_word.env -> env . objects, w->one_word.pos, acc); } } return; }yyL2:;/* line 684 "itcl.puma" */ { register tTree yyV1; register tTree yyV2; {/* line 685 "itcl.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyV1,kobject,Tree_InitHead) yyV1->object.object = w; yyV1->object.ident = w->one_word.ident; yyV1->object.next = e2 -> env . objects; e2 -> env . objects = yyV1;/* line 686 "itcl.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyV2,kobject,Tree_InitHead) yyV2->object.object = w; yyV2->object.ident = w->one_word.ident; yyV2->object.next = w->one_word.env -> env . objects; w->one_word.env -> env . objects = yyV2;/* line 687 "itcl.puma" */ w->one_word.env = e2;/* line 688 "itcl.puma" */ dcl (e2 -> env . objects, attr);/* line 689 "itcl.puma" */ if (acc == PAF_REF_WRITE) use (e2->env.objects, w->one_word.pos, acc); } return; } } if (w->Kind == kqual_word) {/* line 691 "itcl.puma" */ {/* line 692 "itcl.puma" */ w = w->qual_word.qualification; goto yyRecursion; } } if (w->Kind == kqual_words) {/* line 694 "itcl.puma" */ return; } if (w->Kind == kglobal_ident) {/* line 696 "itcl.puma" */ { register tTree yyV1; {/* line 697 "itcl.puma" */ obj = IdentifyGlobal (w->global_ident.ident);/* line 698 "itcl.puma" */ if (! (obj != NULL)) goto yyL6; {/* line 699 "itcl.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyV1,kobject,Tree_InitHead) yyV1->object.object = obj -> object . object; yyV1->object.ident = w->global_ident.ident; yyV1->object.next = w->global_ident.env -> env . objects; w->global_ident.env -> env . objects = yyV1;/* line 700 "itcl.puma" */ use (w->global_ident.env -> env . objects, w->global_ident.pos, acc); } } return; }yyL6:;/* line 702 "itcl.puma" */ { register tTree yyV1; register tTree yyV2; {/* line 703 "itcl.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyV1,kobject,Tree_InitHead) yyV1->object.object = w; yyV1->object.ident = w->global_ident.ident; yyV1->object.next = genv -> env . objects; genv -> env . objects = yyV1;/* line 704 "itcl.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyV2,kobject,Tree_InitHead) yyV2->object.object = w; yyV2->object.ident = w->global_ident.ident; yyV2->object.next = w->global_ident.env -> env . objects; w->global_ident.env -> env . objects = yyV2;/* line 705 "itcl.puma" */ w->global_ident.env = genv;/* line 706 "itcl.puma" */ dcl (genv -> env . objects, attr);/* line 707 "itcl.puma" */ if (acc == PAF_REF_WRITE) use (genv->env.objects, w->global_ident.pos, acc); } return; } } if (w->Kind == kqualification) {/* line 709 "itcl.puma" */ {/* line 711 "itcl.puma" */ need_pass_2 = rtrue; } return; } if (w->Kind == kcomplex_qual) {/* line 709 "itcl.puma" */ {/* line 711 "itcl.puma" */ need_pass_2 = rtrue; } return; };}static void add_vars#if defined __STDC__ | defined __cplusplus(register tTree yyP5, register int acc)#else(yyP5, acc) register tTree yyP5; register int acc;#endif{ yyRecursion: if (Tree_IsType (yyP5, kword_c)) {/* line 718 "itcl.puma" */ {/* line 719 "itcl.puma" */ add_var (yyP5, acc, default_attr);/* line 720 "itcl.puma" */ yyP5 = yyP5->word_c.next; goto yyRecursion; } };}static void add_foreach_vars#if defined __STDC__ | defined __cplusplus(register tTree yyP6)#else(yyP6) register tTree yyP6;#endif{ yyRecursion: if (yyP6->Kind == kqual_word) { if (Tree_IsType (yyP6->qual_word.next, kword_c)) { if (yyP6->qual_word.qualification->Kind == klocal_text) { if (yyP6->qual_word.qualification->local_text.texts->Kind == kblock) {/* line 727 "itcl.puma" */ {/* line 729 "itcl.puma" */ add_foreach_vars (yyP6->qual_word.qualification->local_text.texts->block.stmts);/* line 730 "itcl.puma" */ yyP6 = yyP6->qual_word.next->word_c.next; goto yyRecursion; } } } } } if (Tree_IsType (yyP6, kword_c)) { if (Tree_IsType (yyP6->word_c.next, kword_c)) {/* line 732 "itcl.puma" */ {/* line 733 "itcl.puma" */ add_var (yyP6, PAF_REF_WRITE, default_attr);/* line 734 "itcl.puma" */ yyP6 = yyP6->word_c.next->word_c.next; goto yyRecursion; } } } if (yyP6->Kind == kstmt) {/* line 736 "itcl.puma" */ {/* line 737 "itcl.puma" */ add_vars (yyP6->stmt.words, PAF_REF_WRITE);/* line 738 "itcl.puma" */ yyP6 = yyP6->stmt.next; goto yyRecursion; } };}static void add_var#if defined __STDC__ | defined __cplusplus(register tTree w, register int acc, register int attr)#else(w, acc, attr) register tTree w; register int acc; register int attr;#endif{ if (w->Kind == kone_word) {/* line 745 "itcl.puma" */ {/* line 746 "itcl.puma" */ add_var_2 (w->one_word.ident, w->one_word.pos, w, w->one_word.env, acc, attr); } return; } if (w->Kind == kqual_word) { if (w->qual_word.qualification->Kind == ksubscription) { if (w->qual_word.qualification->subscription.qualification->Kind == klocal_ident) {/* line 748 "itcl.puma" */ {/* line 750 "itcl.puma" */ add_var_2 (w->qual_word.qualification->subscription.qualification->local_ident.ident, w->qual_word.qualification->subscription.qualification->local_ident.pos, w->qual_word.qualification->subscription.qualification, w->qual_word.env, acc, attr); } return; }/* line 755 "itcl.puma" */ {/* line 759 "itcl.puma" */ need_pass_2 = rtrue; } return; } if (w->qual_word.qualification->Kind == kqualification) {/* line 755 "itcl.puma" */ {/* line 759 "itcl.puma" */ need_pass_2 = rtrue; } return; } if (w->qual_word.qualification->Kind == kcomplex_qual) {/* line 755 "itcl.puma" */ {/* line 759 "itcl.puma" */ need_pass_2 = rtrue; } return; } if (w->qual_word.qualification->Kind == kglobal_ident) {/* line 755 "itcl.puma" */ {/* line 759 "itcl.puma" */ need_pass_2 = rtrue; } return; } } if (w->Kind == kobj_word) {/* line 752 "itcl.puma" */ {/* line 753 "itcl.puma" */ add_var_2 (w->obj_word.ident, w->obj_word.pos, w, w->obj_word.env, acc, attr); } return; };}static void add_var_2#if defined __STDC__ | defined __cplusplus(register tIdent i, tPosition pos, register tTree w, register tTree e, register int acc, register int attr)#else(i, pos, w, e, acc, attr) register tIdent i; tPosition pos; register tTree w; register tTree e; register int acc; register int attr;#endif{/* line 767 "itcl.puma" */ { tTree obj; {/* line 768 "itcl.puma" *//* line 768 "itcl.puma" */ obj = IdentifyVariable (i, e);/* line 769 "itcl.puma" */ if (! (obj != NULL)) goto yyL1; {/* line 770 "itcl.puma" */ use (obj, pos, acc); } } return; }yyL1:;/* line 772 "itcl.puma" */ { register tTree yyV1; {/* line 773 "itcl.puma" */ yyALLOC (tTree,Tree_PoolFreePtr,Tree_PoolStartPtr, Tree_Alloc,yobject,MakeTree,yyV1,kobject,Tree_InitHead) yyV1->object.object = w; yyV1->object.ident = i; yyV1->object.next = e -> env . objects; e -> env . objects = yyV1;/* line 774 "itcl.puma" */ dcl (e -> env . objects, attr);/* line 775 "itcl.puma" */ if (acc == PAF_REF_WRITE) use (e->env.objects, pos, acc); } return; };}static tTree IdentifyLocal#if defined __STDC__ | defined __cplusplus(register tIdent i, register tTree o)#else(i, o) register tIdent i; register tTree o;#endif{ yyRecursion: if (o->Kind == kobject) {/* line 782 "itcl.puma" */ {/* line 783 "itcl.puma" */ if (! (o->object.ident == i && ! Tree_IsType (o->object.object, kproc_c))) goto yyL1; } return o;yyL1:;/* line 786 "itcl.puma" */ o = o->object.next; goto yyRecursion; }/* line 789 "itcl.puma" */ return NULL;}static tTree IdentifyGlobal#if defined __STDC__ | defined __cplusplus(register tIdent yyP7)#else(yyP7) register tIdent yyP7;#endif{/* line 797 "itcl.puma" */ return IdentifyLocal (yyP7, genv -> env . objects);}static tTree Identify#if defined __STDC__ | defined __cplusplus(register tIdent yyP9, register tTree yyP8)#else(yyP9, yyP8) register tIdent yyP9; register tTree yyP8;#endif{ yyRecursion:/* line 803 "itcl.puma" */ { tTree obj; {/* line 804 "itcl.puma" *//* line 804 "itcl.puma" */ obj = IdentifyMember (yyP9, yyP8);/* line 805 "itcl.puma" */ if (! (obj != NULL)) goto yyL1; } { return obj; } }yyL1:; if (yyP8->Kind == kenv) { if (yyP8->env.env == NULL) {/* line 808 "itcl.puma" */ return NULL; }/* line 811 "itcl.puma" */ yyP8 = yyP8->env.env; goto yyRecursion; } if (yyP8->Kind == kenv2) {/* line 811 "itcl.puma" */ yyP8 = yyP8->env2.env2; goto yyRecursion; }/* line 815 "itcl.puma" */ return NULL;}static tTree IdentifyMember#if defined __STDC__ | defined __cplusplus(register tIdent yyP11, register tTree yyP10)#else(yyP11, yyP10) register tIdent yyP11; register tTree yyP10;#endif{ if (yyP10->Kind == kenv) {/* line 823 "itcl.puma" */ { tTree obj; {/* line 824 "itcl.puma" *//* line 824 "itcl.puma" */ obj = IdentifyLocal (yyP11, yyP10->env.objects);/* line 825 "itcl.puma" */ if (! (obj != NULL)) goto yyL1; } { return obj; } }yyL1:;/* line 828 "itcl.puma" */ return IdentifySuper (yyP11, yyP10->env.env); }/* line 831 "itcl.puma" */ return NULL;}static tTree IdentifySuper#if defined __STDC__ | defined __cplusplus(register tIdent yyP13, register tTree yyP12)#else(yyP13, yyP12) register tIdent yyP13; register tTree yyP12;#endif{ yyRecursion: if (yyP12 == NULL) {/* line 839 "itcl.puma" */ return NULL; } if (yyP12->Kind == kenv2) {/* line 842 "itcl.puma" */ { tTree obj; {/* line 843 "itcl.puma" *//* line 843 "itcl.puma" */ obj = IdentifyMember (yyP13, yyP12->env2.env1);/* line 844 "itcl.puma" */ if (! (obj != NULL)) goto yyL2; } { return obj; } }yyL2:;/* line 847 "itcl.puma" */ yyP12 = yyP12->env2.env2; goto yyRecursion; }/* line 850 "itcl.puma" */ return NULL;}static tTree IdentifyVariable#if defined __STDC__ | defined __cplusplus(register tIdent yyP15, register tTree yyP14)#else(yyP15, yyP14) register tIdent yyP15; register tTree yyP14;#endif{ if (yyP14->Kind == kenv) {/* line 858 "itcl.puma" */ { tTree obj; {/* line 859 "itcl.puma" *//* line 859 "itcl.puma" */ obj = IdentifyLocal (yyP15, yyP14->env.objects);/* line 860 "itcl.puma" */ if (! (obj != NULL)) goto yyL1; } { return obj; } }yyL1:; if (yyP14->env.env == NULL) {/* line 863 "itcl.puma" */ return NULL; } if (yyP14->env.env->Kind == kenv) { if (yyP14->env.env->env.object->Kind == kclass) {/* line 866 "itcl.puma" */ { tTree obj; {/* line 868 "itcl.puma" *//* line 868 "itcl.puma" */ obj = IdentifyMember (yyP15, yyP14->env.env);/* line 869 "itcl.puma" */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -