📄 trafo.c
字号:
/* line 400 "tcl.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 401 "tcl.puma" */ use (w->one_word.env -> env . objects, w->one_word.pos, acc);/* line 402 "tcl.puma" */ add_variable_vars_2 (w->one_word.next); } } return; }yyL2:;/* line 404 "tcl.puma" */ { register tTree yyV1; register tTree yyV2; {/* line 405 "tcl.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 406 "tcl.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 407 "tcl.puma" */ w->one_word.env = e2;/* line 408 "tcl.puma" */ dcl (e2 -> env . objects);/* line 409 "tcl.puma" */ if (acc == PAF_REF_WRITE) use (e2->env.objects, w->one_word.pos, acc); /* line 410 "tcl.puma" */ add_variable_vars_2 (w->one_word.next); } return; } } if (w->Kind == kqual_word) {/* line 412 "tcl.puma" */ {/* line 413 "tcl.puma" */ add_variable_vars (w->qual_word.qualification, acc);/* line 414 "tcl.puma" */ add_variable_vars_2 (w->qual_word.next); } return; } if (w->Kind == kqual_words) {/* line 416 "tcl.puma" */ {/* line 417 "tcl.puma" */ add_variable_vars_2 (w->qual_words.next); } return; } if (w->Kind == kglobal_ident) {/* line 419 "tcl.puma" */ { register tTree yyV1; {/* line 420 "tcl.puma" */ obj = IdentifyGlobal (w->global_ident.ident);/* line 421 "tcl.puma" */ if (! (obj != NULL)) goto yyL6; {/* line 422 "tcl.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 423 "tcl.puma" */ use (w->global_ident.env -> env . objects, w->global_ident.pos, acc); } } return; }yyL6:;/* line 425 "tcl.puma" */ { register tTree yyV1; register tTree yyV2; {/* line 426 "tcl.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 427 "tcl.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 428 "tcl.puma" */ w->global_ident.env = genv;/* line 429 "tcl.puma" */ dcl (genv -> env . objects);/* line 430 "tcl.puma" */ if (acc == PAF_REF_WRITE) use (genv->env.objects, w->global_ident.pos, acc); } return; } } if (w->Kind == kqualification) {/* line 432 "tcl.puma" */ {/* line 434 "tcl.puma" */ need_pass_2 = rtrue; } return; } if (w->Kind == kcomplex_qual) {/* line 432 "tcl.puma" */ {/* line 434 "tcl.puma" */ need_pass_2 = rtrue; } return; };}static void add_variable_vars_2#if defined __STDC__ | defined __cplusplus(register tTree yyP5)#else(yyP5) register tTree yyP5;#endif{ if (Tree_IsType (yyP5, kword_c)) { if (Tree_IsType (yyP5->word_c.next, kword_c)) {/* line 441 "tcl.puma" */ {/* line 442 "tcl.puma" */ add_variable_vars (yyP5->word_c.next, PAF_REF_WRITE); } return; }/* line 444 "tcl.puma" */ {/* line 445 "tcl.puma" */ add_variable_vars (yyP5->word_c.next, PAF_REF_READ); } return; };}static void add_vars#if defined __STDC__ | defined __cplusplus(register tTree yyP6, register int acc)#else(yyP6, acc) register tTree yyP6; register int acc;#endif{ yyRecursion: if (Tree_IsType (yyP6, kword_c)) {/* line 452 "tcl.puma" */ {/* line 453 "tcl.puma" */ add_var (yyP6, acc);/* line 454 "tcl.puma" */ yyP6 = yyP6->word_c.next; goto yyRecursion; } };}static void add_foreach_vars#if defined __STDC__ | defined __cplusplus(register tTree yyP7)#else(yyP7) register tTree yyP7;#endif{ yyRecursion: if (yyP7->Kind == kqual_word) { if (Tree_IsType (yyP7->qual_word.next, kword_c)) { if (yyP7->qual_word.qualification->Kind == klocal_text) { if (yyP7->qual_word.qualification->local_text.texts->Kind == kblock) {/* line 461 "tcl.puma" */ {/* line 463 "tcl.puma" */ add_foreach_vars (yyP7->qual_word.qualification->local_text.texts->block.stmts);/* line 464 "tcl.puma" */ yyP7 = yyP7->qual_word.next->word_c.next; goto yyRecursion; } } } } } if (Tree_IsType (yyP7, kword_c)) { if (Tree_IsType (yyP7->word_c.next, kword_c)) {/* line 466 "tcl.puma" */ {/* line 467 "tcl.puma" */ add_var (yyP7, PAF_REF_WRITE);/* line 468 "tcl.puma" */ yyP7 = yyP7->word_c.next->word_c.next; goto yyRecursion; } } } if (yyP7->Kind == kstmt) {/* line 470 "tcl.puma" */ {/* line 471 "tcl.puma" */ add_vars (yyP7->stmt.words, PAF_REF_WRITE);/* line 472 "tcl.puma" */ yyP7 = yyP7->stmt.next; goto yyRecursion; } };}static void add_var#if defined __STDC__ | defined __cplusplus(register tTree w, register int acc)#else(w, acc) register tTree w; register int acc;#endif{ if (w->Kind == kone_word) {/* line 479 "tcl.puma" */ {/* line 480 "tcl.puma" */ add_var_2 (w->one_word.ident, w->one_word.pos, w, w->one_word.env, acc); } return; } if (w->Kind == kqual_word) { if (w->qual_word.qualification->Kind == ksubscription) { if (w->qual_word.qualification->subscription.qualification->Kind == klocal_ident) {/* line 482 "tcl.puma" */ {/* line 484 "tcl.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); } return; }/* line 486 "tcl.puma" */ {/* line 490 "tcl.puma" */ need_pass_2 = rtrue; } return; } if (w->qual_word.qualification->Kind == kqualification) {/* line 486 "tcl.puma" */ {/* line 490 "tcl.puma" */ need_pass_2 = rtrue; } return; } if (w->qual_word.qualification->Kind == kcomplex_qual) {/* line 486 "tcl.puma" */ {/* line 490 "tcl.puma" */ need_pass_2 = rtrue; } return; } if (w->qual_word.qualification->Kind == kglobal_ident) {/* line 486 "tcl.puma" */ {/* line 490 "tcl.puma" */ need_pass_2 = rtrue; } 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)#else(i, pos, w, e, acc) register tIdent i; tPosition pos; register tTree w; register tTree e; register int acc;#endif{ if (e->Kind == kenv) { if (e->env.object->Kind == kproc) {/* line 498 "tcl.puma" */ { tTree obj; {/* line 500 "tcl.puma" *//* line 500 "tcl.puma" */ obj = IdentifyLocal (i, e -> env . objects);/* line 501 "tcl.puma" */ if (! (obj != NULL)) goto yyL1; {/* line 502 "tcl.puma" */ use (obj, pos, acc); } } return; }yyL1:; } if (e->env.object->Kind == kprogram) {/* line 498 "tcl.puma" */ { tTree obj; {/* line 500 "tcl.puma" *//* line 500 "tcl.puma" */ obj = IdentifyLocal (i, e -> env . objects);/* line 501 "tcl.puma" */ if (! (obj != NULL)) goto yyL2; {/* line 502 "tcl.puma" */ use (obj, pos, acc); } } return; }yyL2:; } if (e->env.object->Kind == knamespace) {/* line 504 "tcl.puma" */ { tTree obj; {/* line 505 "tcl.puma" *//* line 505 "tcl.puma" */ obj = Identify (i, e);/* line 506 "tcl.puma" */ if (! (obj != NULL)) goto yyL3; {/* line 507 "tcl.puma" */ use (obj, pos, acc); } } return; }yyL3:; } }/* line 509 "tcl.puma" */ { register tTree yyV1; {/* line 510 "tcl.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 511 "tcl.puma" */ dcl (e -> env . objects);/* line 512 "tcl.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 519 "tcl.puma" */ {/* line 520 "tcl.puma" */ if (! (o->object.ident == i && o->object.object -> Kind != kproc)) goto yyL1; } return o;yyL1:;/* line 523 "tcl.puma" */ o = o->object.next; goto yyRecursion; }/* line 526 "tcl.puma" */ return NULL;}static tTree IdentifyGlobal#if defined __STDC__ | defined __cplusplus(register tIdent yyP8)#else(yyP8) register tIdent yyP8;#endif{/* line 534 "tcl.puma" */ {/* line 534 "tcl.puma" */ if (! (genv != NULL)) goto yyL1; } return IdentifyLocal (yyP8, genv -> env . objects);yyL1:;/* line 535 "tcl.puma" */ return NULL;}static tTree Identify#if defined __STDC__ | defined __cplusplus(register tIdent yyP10, register tTree yyP9)#else(yyP10, yyP9) register tIdent yyP10; register tTree yyP9;#endif{ if (yyP9->Kind == kenv) {/* line 541 "tcl.puma" */ { tTree obj; {/* line 542 "tcl.puma" *//* line 542 "tcl.puma" */ obj = IdentifyLocal (yyP10, yyP9->env.objects);/* line 543 "tcl.puma" */ if (! (obj != NULL)) goto yyL1; } { return obj; } }yyL1:; }/* line 546 "tcl.puma" */ {/* line 547 "tcl.puma" */ if (! (yyP9 != genv)) goto yyL2; } return IdentifyGlobal (yyP10);yyL2:;/* line 550 "tcl.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 558 "tcl.puma" */ {/* line 559 "tcl.puma" */ if (! (o->object.ident == i && o->object.object -> Kind == kproc)) goto yyL1; } return o;yyL1:;/* line 562 "tcl.puma" */ o = o->object.next; goto yyRecursion; }/* line 565 "tcl.puma" */ return NULL;}static tTree IdentifyProcGlobal#if defined __STDC__ | defined __cplusplus(register tIdent yyP11)#else(yyP11) register tIdent yyP11;#endif{/* line 573 "tcl.puma" */ {/* line 573 "tcl.puma" */ if (! (genv != NULL)) goto yyL1; } return IdentifyProcLocal (yyP11, genv -> env . objects);yyL1:;/* line 574 "tcl.puma" */ return NULL;}static tTree IdentifyProc#if defined __STDC__ | defined __cplusplus(register tIdent yyP13, register tTree yyP12)#else(yyP13, yyP12) register tIdent yyP13; register tTree yyP12;#endif{ if (yyP12->Kind == kenv) {/* line 580 "tcl.puma" */ { tTree obj; {/* line 581 "tcl.puma" *//* line 581 "tcl.puma" */ obj = IdentifyProcLocal (yyP13, yyP12->env.objects);/* line 582 "tcl.puma" */ if (! (obj != NULL)) goto yyL1; } { return obj; } }yyL1:; }/* line 585 "tcl.puma" */ {/* line 586 "tcl.puma" */ if (! (yyP12 != genv)) goto yyL2; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -