Mercurial > hg > CbC > CbC_gcc
diff CbC-examples/tmp4.c @ 78:365b84b6fe04
more examples
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 20 Sep 2011 17:32:20 +0900 |
parents | |
children | 5d30d517ebed |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CbC-examples/tmp4.c Tue Sep 20 17:32:20 2011 +0900 @@ -0,0 +1,61 @@ +#define __environment _CbC_environment +#define __return _CbC_return + +#include "stdio.h" + +int +main(ac,av) +int ac; +char *av[]; +{ + int i; + i=main0(ac,av); + fprintf(stdout,"#0012:1: %s %d\n",av[0]+2,i); + return 0; +} + +int +main0(ac,av) +int ac; +char *av[]; +{ + int i,j,k; + i=123; + j=456; + k=789; + fprintf(stdout,"#0025:2: %s\n",av[0]+2); + goto code0(i,j,k,av,__return,__environment); +} + +__code code0(i,j,k,av,ret,retenv) +int i,j,k; +char *av[]; +__code (*ret)(); +void *retenv; +{ + char *p; + p = av[0]+2; + fprintf(stdout,"#0037:3: i=%d j=%d k=%d av[0]=%s p=%s\n",i,j,k,av[0]+2,p); + goto code1(i,j,k,av,ret,retenv); +} + +__code code1(i,j,k,av,ret,retenv) +int i,j,k; +char *av[]; +__code (*ret)(); +void *retenv; +{ + fprintf(stdout,"#0047:4: %s\n",av[0]+2); + goto code2(i,j,k,av,ret,retenv); +} + +__code code2(i,j,k,av,ret,retenv) +int i,j,k; +char *av[]; +__code (*ret)(); +void *retenv; +{ + fprintf(stdout,"#0057:5: %s\n",av[0]+2); + fprintf(stdout,"#0058:5: i=%d j=%d k=%d\n",i,j,k); + goto (*ret)(1234,retenv); +}