Mercurial > repo
diff interps/c-intercal/src/ick-wrap.c @ 996:859f9b4339e6
<Gregor> tar xf egobot.tar.xz
author | HackBot |
---|---|
date | Sun, 09 Dec 2012 19:30:08 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/interps/c-intercal/src/ick-wrap.c Sun Dec 09 19:30:08 2012 +0000 @@ -0,0 +1,113 @@ +$L +/* $A.c -- generated C-code file for INTERCAL program $A.i */ + +/* This code is explicitly *not* GPLed. Use, abuse, and redistribute freely */ + +#include <stdio.h> +#include <stdlib.h> +#include <time.h> +#include <setjmp.h> + +$M +#include "fiddle.h" +#include "abcess.h" +#include "ick_lose.h" +$K + +#ifdef ICK_EC +#include "ick_ec.h" +void ick_main(void); +#endif + +#define ICKABSTAINED(d) ick_abstained[d] +#define ICKSTASH(a,b,c,d) ick_stash(a, b, c+b, d) +#define ICKRETRIEVE(a,b,c,d,e) ick_retrieve(a+b, c, b, d[b], e) +#define ICKIGNORE(a,b,c) a[b] + +extern int ick_printflow; + +int ick_lineno; + +jmp_buf ick_cjb; +int ick_ccfc; +long ick_skipto=0; +$O +char* ick_globalargv0; +int ick_oldabstain; +int ick_abstained[$B]$C; +$D +$E +$P +int main(int argc, char *argv[]) +{ +#ifndef YUK + ick_parseargs(argc,argv); +#endif + + ick_skipto = 0; + + ick_next = calloc(80, sizeof *ick_next); +#ifdef ICK_EC + ick_next_jmpbufs = malloc(81 * sizeof *ick_next_jmpbufs); +#endif +$N + ick_globalargv0=argv[0]; +#ifdef YUK + yuklines = $J; + yukcommands = $B; + globalargv = argv; + globalargc = argc; +#endif + /* set seed for random error generation */ +#ifdef USG + srand48(time(0) + getpid()); +#else + srand(time(0)); +#endif /* UNIX */ + +#if MULTITHREAD == 1 + ickmtinit(); +#endif + + /* set up stash storage */ + ick_stashinit(); + + $F + +#ifdef ICK_EC + ick_runstartups(); + ick_next(0); +} + +ICK_EC_FUNC_START(ick_main) +{ + ick_linelabelnosp(0); +#endif + /* degenerated code */ + ick_restart: + top: + switch((int)ick_skipto) + { + case 0: + $G + default: + ick_lose(IE129, 0, (const char *)0); + } + +#ifdef YUK + if(yukloop) goto ick_restart; +#endif + ick_lose(IE633, $J, (const char *)0); + + $H +#ifndef ICK_EC + return 0; +#else + return; +#endif +} +#ifdef ICK_EC +ICK_EC_FUNC_END +#endif +$Q +/* Generated code for $A.i ends here */