annotate CbC-examples/tmp1.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents fe568345ddd5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 /* easy test */
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #define __environment _CbC_environment
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #define __return _CbC_return
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 extern int printf(const char *,...);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
8 #if 0 //currently gcc version dose not support void type full continuation.
126
5d30d517ebed fix example
mir3636
parents: 78
diff changeset
9
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
10 __code code0(int ac,char *av[],__code (*ret)(void*));
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
11 __code code1(int ac,char *av[],__code (*exit)(void*));
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
12 __code code3(char a,char b,int c,int d,int e,int f);
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
13 __code code4(char a,char b,int c,int d,int e,int f);
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
14
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
15 __code (*ret)(void *);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 void *env;
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
17 __code exit1(void *);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
126
5d30d517ebed fix example
mir3636
parents: 78
diff changeset
19 void main0(ac,av)
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 int ac;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 char *av[];
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 ret = __return;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 env = __environment;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 printf("#0017:main0 %d start.\n",ac);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 if (ac>=1)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 goto code0(ac,av,__return);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 goto code1(ac,av,exit1);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 // not reached. (warning?)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 printf("#0022:main0 %d end.\n",ac);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
33 __code exit1(void *env)
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 // exit(0);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 goto code3(0,1,2,3,4,5);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 __code code3(a,b,c,d,e,f)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 char a,b;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 int c,d,e,f;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 printf("#0035:code3: %d %d %d %d %d %d\n",a,b,c,d,e,f);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 if(a<10)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 goto code3(a+1,b,c,d,e,f);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 else
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 goto code4(a+3,b+3,c+3,d+3,e+3,f+3);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 __code code4(a,b,c,d,e,f)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 char a,b;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 int c,d,e,f;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 int i=1,j=2;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 printf("#0047:code4: %d %d %d %d %d %d\n",a,b,c,d,e,f);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 if(a<20) // cyclic binary dependency
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 goto code3(a+b,b+c,c+d,d+e,e+f,f+a);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 else if(a<30)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 goto code3(a,b,c,d,e,f);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 else if(a<40) // cyclic dependency
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 goto code3(b,c,a,e,f,d);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 else if(a<50)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 goto code4(a+i,b+j,c+i,d+3,e+3,f+3);
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
64 else goto ret(env);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 __code code0(ac,av,ret)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 int ac;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 char *av[];
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
70 __code (*ret)(void *env);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 goto code1(ac,av,ret);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 __code code1(ac,av,exit)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 int ac;
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
77 __code (*exit)(void*);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 char *av[];
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 {
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
80 __code (*f)(void *);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 printf("#0073:code1: %d\n",ac);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 f = exit;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 if (ac>3)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 goto code1(ac,av,f);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 else if (ac>2)
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
86 goto code1(ac,av,f);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 else
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
88 goto (*f)(env);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
91 #endif
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
92
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
93 int main(int ac,char *av[])
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 {
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
95 // main0(1,av);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 printf("#0087:main continue.\n");
128
fe568345ddd5 fix CbC-example
mir3636
parents: 126
diff changeset
97 // main0(0,av);
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 printf("#0089:main end.\n");
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 return 0;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 /* end */