view test/tmp4.c @ 725:3f1f6c0610c1

goto with enviornment syntax changed.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 20 Aug 2009 16:39:02 +0900
parents 6b7372e17970
children c2c709727221
line wrap: on
line source

#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,"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,"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,"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,"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,"5: %s\n",av[0]+2);
    fprintf(stdout,"5: i=%d j=%d k=%d\n",i,j,k);
    goto (*ret)(1234,retenv);
}