8 #ifndef _SCHEME_PRIVATE_H
9 #define _SCHEME_PRIVATE_H
13 enum scheme_port_kind {
63 #define CELL_SEGSIZE 5000
64 #define CELL_NSEGMENT 10
65 char *alloc_seg[CELL_NSEGMENT];
66 pointer cell_seg[CELL_NSEGMENT];
111 port load_stack[MAXFIL];
112 int nesting_stack[MAXFIL];
119 #define LINESIZE 1024
120 char linebuff[LINESIZE];
132 struct scheme_interface *vptr;
138 enum scheme_opcodes {
139 #define _OP_DEF(A,B,C,D,E,OP) OP,
145 #define cons(sc,a,b) _cons(sc,a,b,0)
146 #define immutable_cons(sc,a,b) _cons(sc,a,b,1)
148 int is_string(pointer p);
149 char *string_value(pointer p);
150 int is_number(pointer p);
151 num nvalue(pointer p);
152 long ivalue(pointer p);
153 double rvalue(pointer p);
154 int is_integer(pointer p);
155 int is_real(pointer p);
156 int is_character(pointer p);
157 long charvalue(pointer p);
158 int is_vector(pointer p);
160 int is_port(pointer p);
162 int is_pair(pointer p);
163 pointer pair_car(pointer p);
164 pointer pair_cdr(pointer p);
165 pointer set_car(pointer p, pointer q);
166 pointer set_cdr(pointer p, pointer q);
168 int is_symbol(pointer p);
169 char *symname(pointer p);
170 int hasprop(pointer p);
172 int is_syntax(pointer p);
173 int is_proc(pointer p);
174 int is_foreign(pointer p);
175 char *syntaxname(pointer p);
176 int is_closure(pointer p);
178 int is_macro(pointer p);
180 pointer closure_code(pointer p);
181 pointer closure_env(pointer p);
183 int is_continuation(pointer p);
184 int is_promise(pointer p);
185 int is_environment(pointer p);
186 int is_immutable(pointer p);
187 void setimmutable(pointer p);