📄 itcl.c
字号:
if (! (obj != NULL)) goto yyL3; } { return obj; } }yyL3:; } if (yyP14->env.env->env.object->Kind == kitcl_class) {/* line 866 "itcl.puma" */ { tTree obj; {/* line 868 "itcl.puma" *//* line 868 "itcl.puma" */ obj = IdentifyMember (yyP15, yyP14->env.env);/* line 869 "itcl.puma" */ if (! (obj != NULL)) goto yyL4; } { return obj; } }yyL4:; } } }/* line 872 "itcl.puma" */ return NULL;}static tTree IdentifyProcLocal#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 880 "itcl.puma" */ {/* line 881 "itcl.puma" */ if (! (o->object.ident == i && Tree_IsType (o->object.object, kproc_c))) goto yyL1; } return o;yyL1:;/* line 884 "itcl.puma" */ o = o->object.next; goto yyRecursion; }/* line 887 "itcl.puma" */ return NULL;}static tTree IdentifyProcGlobal#if defined __STDC__ | defined __cplusplus(register tIdent yyP16)#else(yyP16) register tIdent yyP16;#endif{/* line 895 "itcl.puma" */ return IdentifyProcLocal (yyP16, genv -> env . objects);}static tTree IdentifyProc#if defined __STDC__ | defined __cplusplus(register tIdent yyP18, register tTree yyP17)#else(yyP18, yyP17) register tIdent yyP18; register tTree yyP17;#endif{ yyRecursion:/* line 901 "itcl.puma" */ { tTree obj; {/* line 902 "itcl.puma" *//* line 902 "itcl.puma" */ obj = IdentifyProcMember (yyP18, yyP17);/* line 903 "itcl.puma" */ if (! (obj != NULL)) goto yyL1; } { return obj; } }yyL1:; if (yyP17->Kind == kenv) { if (yyP17->env.env == NULL) {/* line 906 "itcl.puma" */ return NULL; }/* line 909 "itcl.puma" */ yyP17 = yyP17->env.env; goto yyRecursion; } if (yyP17->Kind == kenv2) {/* line 909 "itcl.puma" */ yyP17 = yyP17->env2.env2; goto yyRecursion; }/* line 913 "itcl.puma" */ return NULL;}static tTree IdentifyProcMember#if defined __STDC__ | defined __cplusplus(register tIdent yyP20, register tTree yyP19)#else(yyP20, yyP19) register tIdent yyP20; register tTree yyP19;#endif{ if (yyP19->Kind == kenv) {/* line 921 "itcl.puma" */ { tTree obj; {/* line 922 "itcl.puma" *//* line 922 "itcl.puma" */ obj = IdentifyProcLocal (yyP20, yyP19->env.objects);/* line 923 "itcl.puma" */ if (! (obj != NULL)) goto yyL1; } { return obj; } }yyL1:;/* line 926 "itcl.puma" */ return IdentifyProcSuper (yyP20, yyP19->env.env); }/* line 929 "itcl.puma" */ return NULL;}static tTree IdentifyProcSuper#if defined __STDC__ | defined __cplusplus(register tIdent yyP22, register tTree yyP21)#else(yyP22, yyP21) register tIdent yyP22; register tTree yyP21;#endif{ yyRecursion: if (yyP21 == NULL) {/* line 937 "itcl.puma" */ return NULL; } if (yyP21->Kind == kenv2) {/* line 940 "itcl.puma" */ { tTree obj; {/* line 941 "itcl.puma" *//* line 941 "itcl.puma" */ obj = IdentifyProcMember (yyP22, yyP21->env2.env1);/* line 942 "itcl.puma" */ if (! (obj != NULL)) goto yyL2; } { return obj; } }yyL2:;/* line 945 "itcl.puma" */ yyP21 = yyP21->env2.env2; goto yyRecursion; }/* line 948 "itcl.puma" */ return NULL;}static tTree get_namespace#if defined __STDC__ | defined __cplusplus(register tTree yyP23)#else(yyP23) register tTree yyP23;#endif{ yyRecursion: if (yyP23->Kind == kenv) { if (Tree_IsType (yyP23->env.object, knamespace_c)) {/* line 956 "itcl.puma" */ return yyP23; } if (yyP23->env.object->Kind == kprogram) {/* line 956 "itcl.puma" */ return yyP23; }/* line 959 "itcl.puma" */ yyP23 = yyP23->env.env; goto yyRecursion; } yyAbort ("get_namespace"); return 0;}static void pass2#if defined __STDC__ | defined __cplusplus(register tTree t)#else(t) register tTree t;#endif{ yyRecursion: if (t->Kind == kstmt) { if (t->stmt.words->Kind == kone_word) { if (Tree_IsType (t->stmt.words->one_word.next, kword_c)) {/* line 965 "itcl.puma" */ {/* line 967 "itcl.puma" */ add_qualifications (t->stmt.words->one_word.ident, t->stmt.words->one_word.next, default_attr);/* line 968 "itcl.puma" */ pass2 (t->stmt.words);/* line 969 "itcl.puma" */ t = t->stmt.next; goto yyRecursion; } } }/* line 971 "itcl.puma" */ {/* line 972 "itcl.puma" */ pass2 (t->stmt.words);/* line 973 "itcl.puma" */ t = t->stmt.next; goto yyRecursion; } } if (t->Kind == kconfigbody) {/* line 975 "itcl.puma" */ { tString prev_proc; {/* line 976 "itcl.puma" *//* line 976 "itcl.puma" */ prev_proc = cur_proc_ptr;/* line 977 "itcl.puma" */ cur_proc_ptr = "";/* line 978 "itcl.puma" */ get_objects (t->configbody.block);/* line 979 "itcl.puma" */ pass2 (t->configbody.block);/* line 980 "itcl.puma" */ cur_proc_ptr = prev_proc;/* line 981 "itcl.puma" */ t = t->configbody.next; goto yyRecursion; } } } if (Tree_IsType (t, kproc_c)) { if (t->proc_c.qualification->Kind == klocal_ident) {/* line 983 "itcl.puma" */ { tString prev_proc; {/* line 985 "itcl.puma" *//* line 985 "itcl.puma" */ prev_proc = cur_proc_ptr;/* line 986 "itcl.puma" */ cur_proc_ptr = GetCStr (t->proc_c.qualification->local_ident.ident);/* line 987 "itcl.puma" */ pass2 (t->proc_c.block);/* line 988 "itcl.puma" */ cur_proc_ptr = prev_proc;/* line 989 "itcl.puma" */ t = t->proc_c.next; goto yyRecursion; } } } if (t->proc_c.qualification->Kind == kglobal_ident) {/* line 983 "itcl.puma" */ { tString prev_proc; {/* line 985 "itcl.puma" *//* line 985 "itcl.puma" */ prev_proc = cur_proc_ptr;/* line 986 "itcl.puma" */ cur_proc_ptr = GetCStr (t->proc_c.qualification->global_ident.ident);/* line 987 "itcl.puma" */ pass2 (t->proc_c.block);/* line 988 "itcl.puma" */ cur_proc_ptr = prev_proc;/* line 989 "itcl.puma" */ t = t->proc_c.next; goto yyRecursion; } } } if (t->proc_c.qualification->Kind == klocal_text) {/* line 991 "itcl.puma" */ { tString prev_proc; {/* line 993 "itcl.puma" *//* line 993 "itcl.puma" */ prev_proc = cur_proc_ptr;/* line 994 "itcl.puma" */ cur_proc_ptr = GetCStr (get_ident (t->proc_c.qualification));/* line 995 "itcl.puma" */ pass2 (t->proc_c.block);/* line 996 "itcl.puma" */ cur_proc_ptr = prev_proc;/* line 997 "itcl.puma" */ t = t->proc_c.next; goto yyRecursion; } } } if (t->proc_c.qualification->Kind == kglobal_text) {/* line 991 "itcl.puma" */ { tString prev_proc; {/* line 993 "itcl.puma" *//* line 993 "itcl.puma" */ prev_proc = cur_proc_ptr;/* line 994 "itcl.puma" */ cur_proc_ptr = GetCStr (get_ident (t->proc_c.qualification));/* line 995 "itcl.puma" */ pass2 (t->proc_c.block);/* line 996 "itcl.puma" */ cur_proc_ptr = prev_proc;/* line 997 "itcl.puma" */ t = t->proc_c.next; goto yyRecursion; } } } if (t->proc_c.block->texts.env->Kind == kenv) {/* line 999 "itcl.puma" */ { tTree e; tIdent ident; tString prev_proc; tString prev_class; {/* line 1002 "itcl.puma" *//* line 1002 "itcl.puma" */ e = get_env (t->proc_c.qualification);/* line 1003 "itcl.puma" *//* line 1003 "itcl.puma" */ ident = get_ident (t->proc_c.qualification);/* line 1004 "itcl.puma" */ if (e) { t->proc_c.env = e; t->proc_c.block->texts.env->env.env = e; e->env.objects = mobject (t, ident, e->env.objects); dcl (e->env.objects, t->proc_c.attribute); } else { t->proc_c.env->env.objects = mobject (t, ident, t->proc_c.env->env.objects); dcl (t->proc_c.env->env.objects, t->proc_c.attribute); }/* line 1014 "itcl.puma" *//* line 1014 "itcl.puma" */ prev_proc = cur_proc_ptr;/* line 1015 "itcl.puma" */ cur_proc_ptr = GetCStr (ident);/* line 1016 "itcl.puma" *//* line 1016 "itcl.puma" */ prev_class = cur_class_ptr;/* line 1017 "itcl.puma" */ cur_class_ptr = get_class (t->proc_c.qualification);/* line 1018 "itcl.puma" */ get_param_objects (t->proc_c.param_names);/* line 1019 "itcl.puma" */ get_objects (t->proc_c.block);/* line 1020 "itcl.puma" */ pass2 (t->proc_c.block);/* line 1021 "itcl.puma" */ cur_proc_ptr = prev_proc;/* line 1022 "itcl.puma" */ cur_class_ptr = prev_class;/* line 1023 "itcl.puma" */ t = t->proc_c.next; goto yyRecursion; } } } } if (t->Kind == knamespace) { if (t->namespace.qualification->Kind == klocal_ident) {/* line 1025 "itcl.puma" */ { tString prev_class; {/* line 1027 "itcl.puma" *//* line 1027 "itcl.puma" */ prev_class = cur_class_ptr;/* line 1028 "itcl.puma" */ cur_class_ptr = GetCStr (t->namespace.qualification->local_ident.ident);/* line 1029 "itcl.puma" */ pass2 (t->namespace.block);/* line 1030 "itcl.puma" */ cur_class_ptr = prev_class;/* line 1031 "itcl.puma" */ t = t->namespace.next; goto yyRecursion; } } } if (t->namespace.qualification->Kind == kglobal_ident) {/* line 1025 "itcl.puma" */ { tString prev_class; {/* line 1027 "itcl.puma" *//* line 1027 "itcl.puma" */ prev_class = cur_class_ptr;/* line 1028 "itcl.puma" */ cur_class_ptr = GetCStr (t->namespace.qualification->global_ident.ident);/* line 1029 "itcl.puma" */ pass2 (t->namespace.block);/* line 1030 "itcl.puma" */ cur_class_ptr = prev_class;/* line 1031 "itcl.puma" */ t = t->namespace.next; goto yyRecursion; } } } if (t->namespace.qualification->Kind == klocal_text) {/* line 1033 "itcl.puma" */ { tString prev_class; {/* line 1035 "itcl.puma" *//* line 1035 "itcl.puma" */ prev_class = cur_class_ptr;/* line 1036 "itcl.puma" */ cur_class_ptr = GetCStr (get_ident (t->namespace.qualification));/* line 1037 "itcl.puma" */ pass2 (t->namespace.block);/* line 1038 "itcl.puma" */ cur_class_ptr = prev_class;/* line 1039 "itcl.puma" */ t = t->namespace.next; goto yyRecursion; } } } if (t->namespace.qualification->Kind == kglobal_text) {/* line 1033 "itcl.puma" */ { tString prev_class; {/* line 1035 "itcl.puma" *//* line 1035 "itcl.puma" */ prev_class = cur_class_ptr;/* line 1036 "itcl.puma" */ cur_class_ptr = GetCStr (get_ident (t->namespace.qualification));/* line 1037 "itcl.puma" */ pass2 (t->namespace.block);/* line 1038 "itcl.puma" */ cur_class_ptr = prev_class;/* line 1039 "itcl.puma" */ t = t->namespace.next; goto yyRecursion; } } } if (t->namespace.block->texts.env->Kind == kenv) {/* line 1041 "itcl.puma" */ { tTree e; tIdent ident; tTree obj; tString prev_class; {/* line 1044 "itcl.puma" *//* line 1044 "itcl.puma" */ e = get_env (t->namespace.qualification);/* line 1045 "itcl.puma" *//* line 1045 "itcl.puma" */ ident = get_ident (t->namespace.qualification);/* line 1046 "itcl.puma" *//* line 1047 "itcl.puma" */ if (e) { t->namespace.env = e; t->namespace.block->texts.env->env.env = e; obj = IdentifyLocal (ident, e->env.objects); if (obj != NoTree && obj->object.object->Kind == knamespace) { relocate (t->namespace.block, obj->object.object->namespace.block->texts.env); use (obj, t->namespace.qualification->qualification_c.pos, PAF_REF_READ); } else { e->env.objects = mobject (t, ident, e->env.objects); dcl (e->env.objects, t->namespace.attribute); } } else { t->namespace.env->env.objects = mobject (t, ident, t->namespace.env->env.objects); dcl (t->namespace.env->env.objects, t->namespace.attribute); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -