449
|
1 /* easy test */
|
0
|
2
|
449
|
3 code (*ret)();
|
|
4 void *env;
|
|
5
|
|
6 main0(ac,av)
|
0
|
7 int ac;
|
|
8 char *av[];
|
|
9 {
|
449
|
10 ret = return;
|
|
11 env = environment;
|
491
|
12 printf("#0011:main0 %d start.\n",ac);
|
449
|
13 if (ac>=1)
|
|
14 goto code0(ac,av,return);
|
172
|
15 goto code1(ac,av,exit1);
|
449
|
16 // not reached. (warning?)
|
491
|
17 printf("#0016:main0 %d end.\n",ac);
|
172
|
18 }
|
|
19
|
449
|
20 code exit1(int ac)
|
172
|
21 {
|
449
|
22 // exit(0);
|
|
23 goto code3(0,1,2,3,4,5);
|
0
|
24 }
|
|
25
|
|
26 code code3(a,b,c,d,e,f)
|
|
27 char a,b;
|
|
28 int c,d,e,f;
|
|
29 {
|
491
|
30 printf("#0029:code3: %d %d %d %d %d %d\n",a,b,c,d,e,f);
|
449
|
31 if(a<10)
|
|
32 goto code3(a+1,b,c,d,e,f);
|
0
|
33 else
|
449
|
34 goto code4(a+3,b+3,c+3,d+3,e+3,f+3);
|
0
|
35 }
|
|
36
|
|
37 code code4(a,b,c,d,e,f)
|
|
38 char a,b;
|
|
39 int c,d,e,f;
|
|
40 {
|
449
|
41 int i=1,j=2;
|
491
|
42 printf("#0041:code4: %d %d %d %d %d %d\n",a,b,c,d,e,f);
|
449
|
43 if(a<20) // cyclic binary dependency
|
|
44 goto code3(a+b,b+c,c+d,d+e,e+f,f+a);
|
|
45 else if(a<30)
|
0
|
46 goto code3(a,b,c,d,e,f);
|
449
|
47 else if(a<40) // cyclic dependency
|
|
48 goto code3(b,c,a,e,f,d);
|
|
49 else if(a<50)
|
|
50 goto code4(a+i,b+j,c+i,d+3,e+3,f+3);
|
|
51 else goto ret(0),env;
|
0
|
52 }
|
|
53
|
449
|
54 code code0(ac,av,ret)
|
0
|
55 int ac;
|
|
56 char *av[];
|
449
|
57 code ret();
|
0
|
58 {
|
449
|
59 goto code1(ac,av,ret);
|
0
|
60 }
|
|
61
|
172
|
62 code code1(ac,av,exit)
|
|
63 int ac,exit;
|
0
|
64 char *av[];
|
|
65 {
|
449
|
66 code (*f)(int);
|
491
|
67 printf("#0066:code1: %d\n",ac);
|
172
|
68 f = exit;
|
0
|
69 if (ac>3)
|
449
|
70 goto code1(ac,av,f);
|
0
|
71 else if (ac>2)
|
449
|
72 goto code1(av,ac,f);
|
0
|
73 else
|
449
|
74 goto (*f)(ac),env;
|
0
|
75 }
|
449
|
76
|
|
77 int
|
|
78 main(int ac,char *av[])
|
|
79 {
|
|
80 main0(1,av);
|
491
|
81 printf("#0080:main continue.\n");
|
449
|
82 main0(0,av);
|
491
|
83 printf("#0082:main end.\n");
|
449
|
84 }
|
|
85
|
|
86 /* end */
|