annotate test/goto.c @ 79:82d0e30f61dd

*** empty log message ***
author kono
date Mon, 03 Mar 2003 04:56:51 +0900
parents
children 83d901658ce9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
79
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
1
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
2
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
3 code (*conv)(int,code (*)());
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
4 code a2(int i,code conv());
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
5 code a3(int i,code conv());
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
6 code a4(int i,code conv());
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
7 code a5(int i,code conv());
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
8
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
9 code (*exit0)(int);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
10 void *env;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
11
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
12 code
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
13 a2(int i,code conv())
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
14 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
15 printf("%d %x\n",i,conv);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
16 goto conv(i+1,a4);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
17 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
18
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
19 code
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
20 a3(int i,code (*conv)())
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
21 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
22 printf("%d %x\n",i,conv);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
23 goto conv(i+1,a5);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
24 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
25
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
26 code
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
27 a4(int i,code conv())
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
28 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
29 printf("%d %x\n",i,conv);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
30 goto (*conv)(i+1,exit0);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
31 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
32
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
33 code
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
34 a5(int i,code (*conv)())
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
35 {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
36 printf("%d %x\n",i,conv);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
37 goto (*conv)(i+1),env;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
38 }
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
39
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
40 main(int ac,char *av[]) {
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
41 exit0 = return;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
42 env = environment;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
43 conv = a2;
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
44 goto conv(1,a3);
82d0e30f61dd *** empty log message ***
kono
parents:
diff changeset
45 }