#ifndef ___BEFUNGE_H #define ___BEFUNGE_H #include #include typedef struct { int x, y; } coord; typedef struct { int *stack; int stacksize; int sp; } stackt; typedef struct{ int *befungespace; int **mem; coord size; coord ip; coord delta; stackt *stack; stackt *call; stackt *CTX; int mode; /* bitfield */ int prevstrchar; /* previoius character in string, for \ escaping */ int teleport; } bef_interp; /* bits for the mode bitfield */ #define mSTRING 0x1 #define mTERM 0x2 #define m93 0x4 void strepl (stackt *, int); void stpush (stackt *, int); int stpeek (stackt *); int stpop (stackt *); int stdig (stackt *, int depth); void breplace (bef_interp *, int); void push (bef_interp *, int); int bpeek (bef_interp *); int pop (bef_interp *); bef_interp *bef_allocinterp (int stack, int w, int h); void bef_free (bef_interp *); void bef_reset (bef_interp *); void bef_do (bef_interp *, char); int bef_step (bef_interp *); int bef_run (bef_interp *); int strtoicpy (int *, char *); int bef_loadcode (bef_interp *, FILE *); int bef_load93 (bef_interp *, char *name); bef_interp *bef_loadh (char *name); #endif