79
|
1
|
|
2
|
|
3 code (*conv)(int,code (*)());
|
|
4 code a2(int i,code conv());
|
|
5 code a3(int i,code conv());
|
|
6 code a4(int i,code conv());
|
|
7 code a5(int i,code conv());
|
572
|
8 code a6();
|
|
9 code a7();
|
|
10 code a8();
|
|
11 code a9();
|
79
|
12
|
572
|
13 char* print_conv(code conv());
|
193
|
14
|
79
|
15 code (*exit0)(int);
|
|
16 void *env;
|
|
17
|
|
18 code
|
|
19 a2(int i,code conv())
|
|
20 {
|
573
|
21 printf("#0020:a2 %d %s\n",i,print_conv(conv));
|
79
|
22 goto conv(i+1,a4);
|
|
23 }
|
|
24
|
|
25 code
|
|
26 a3(int i,code (*conv)())
|
|
27 {
|
573
|
28 printf("#0027:a3 %d %s\n",i,print_conv(conv));
|
79
|
29 goto conv(i+1,a5);
|
|
30 }
|
|
31
|
|
32 code
|
|
33 a4(int i,code conv())
|
|
34 {
|
573
|
35 printf("#0034:a4 %d %s\n",i,print_conv(conv));
|
80
|
36 goto (*conv)(i+1,a6);
|
79
|
37 }
|
|
38
|
|
39 code
|
|
40 a5(int i,code (*conv)())
|
|
41 {
|
573
|
42 printf("#0041:a5 %d %s\n",i,print_conv(conv));
|
80
|
43 goto (*conv)(i+1,i+2,i+3,a7);
|
|
44 }
|
|
45
|
|
46 code
|
|
47 a6(int i,int j,int k,code conv())
|
|
48 {
|
573
|
49 printf("#0048:a6 %d %s\n",i,print_conv(conv));
|
80
|
50 goto conv(i+1,j,k,a8);
|
|
51 }
|
|
52
|
|
53 code
|
|
54 a7(int i,,int j,int k,code (*conv)())
|
|
55 {
|
573
|
56 printf("#0055:a7 %d %s\n",i,print_conv(conv));
|
80
|
57 goto conv(i+1,j,k,a9);
|
|
58 }
|
|
59
|
|
60 code
|
|
61 a8(int i,int j,int k,code conv())
|
|
62 {
|
573
|
63 printf("#0062:a8 %d %s\n",i,print_conv(conv));
|
80
|
64 goto (*conv)(i+1,j,k,exit0);
|
|
65 }
|
|
66
|
|
67 code
|
|
68 a9(int i,int j,int k,code (*conv)())
|
|
69 {
|
573
|
70 printf("#0069:a9 %d %s\n",i,print_conv(conv));
|
172
|
71 goto (*conv)(0),env;
|
79
|
72 }
|
|
73
|
|
74 main(int ac,char *av[]) {
|
|
75 exit0 = return;
|
|
76 env = environment;
|
|
77 conv = a2;
|
|
78 goto conv(1,a3);
|
|
79 }
|
572
|
80
|
|
81 char*
|
|
82 print_conv(code conv())
|
|
83 {
|
|
84 if(conv==a2) return "a2";
|
|
85 if(conv==a3) return "a3";
|
|
86 if(conv==a4) return "a4";
|
|
87 if(conv==a5) return "a5";
|
|
88 if(conv==a6) return "a6";
|
|
89 if(conv==a7) return "a7";
|
|
90 if(conv==a8) return "a8";
|
|
91 if(conv==a9) return "a9";
|
|
92 else return "xx";
|
|
93 }
|