home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fujiology Archive
/
fujiology_archive_v1_0.iso
/
!FALCON
/
NOCREW
/
MP2_0997.ZIP
/
mp2_0997
/
src
/
libshoe.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-11-08
|
1KB
|
47 lines
/* libshoe.h
*
* COPYRIGHT (c) 1998 by Fredrik Noring.
*/
#include "types.h"
#ifndef _LIBSHOE_H_
#define _LIBSHOE_H_
#define ONE_K 1024L
#define ONE_MEG (ONE_K*ONE_K)
#define HEAP_SIZE (100*ONE_K)
#define GC_MINIMUM (4*ONE_K)
#define MAX_SYMBOLS (9999)
#define T memdup("#t")
#define F memdup("#f")
/*#define ERR (trace?panic("#ERR."):memdup("#ERR.")) */
#define ERR memdup("#ERR.")
#define FP(x) MATCH((x), F)
#define TP(x) (!FP(x))
#define NILP(x) MATCH((x), "()")
#define LISTP(x) ((x)[0] == '(')
#define MATCH(a, b) (strcmp((a), (b)) == 0)
#define DIGITP(c) ((c) >= '0' && (c) <= '9')
#define EVAL(x) eval(car(x))
#define EVALARG(x) EVAL(cdr(x))
#define DUAL_EVAL(s, op) \
Byte *a, *b; \
s = push_stack(s); a = push_stack(EVAL(s)); \
b = push_stack(EVALARG(s)); op; pop_n_elems(3); return s;
extern Byte *eval(Byte *s);
extern Int inquire_balance(void);
extern Byte *parse_eval(Byte *input);
extern void bootstrap();
extern void bif(Byte *symbol, void *f);
extern Byte *mem(Int amount);
extern Byte *memdup(Byte *s);
extern Byte *car(Byte *s);
extern Byte *cdr(Byte *s);
extern Byte *push_stack(Byte *s);extern Byte *pop_n_elems(Int n);
#endif /* _LIBSHOE_H_ */