1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439
|
#include "pbits.h"
#undef bool
typedef int bool;
typedef long long lfixnum;
typedef unsigned long long ulfixnum;
typedef long fixnum;
typedef unsigned long ufixnum;
typedef float shortfloat;
typedef double longfloat;
typedef union lispunion *object;
typedef union typeunion *hobj;
#ifndef WORDS_BIGENDIAN
#define FIRSTWORD ufixnum e:1,m:1,f:1,s:1,tt:4,t:5,st:3,w:LM(16)
#define FSTPWORD ufixnum emfs:4, tp:9, st:3,w:LM(16)
#define MARKWORD ufixnum e:1, mf:2,s:1,tt:4,t:5,x:LM(13)
#define SGCMWORD ufixnum e:1,mfs:3, tt:4,t:5,x:LM(13)
#define TYPEWORD ufixnum emf:3, s:1,tt:4,t:5,x:LM(13)
#define FUNWORD ufixnum e:1,m:1,f:1,s:1,tt:4,t:5,fun_minarg:6,fun_maxarg:6,fun_neval:5,fun_vv:1,y:LM(31)
#else
#define FIRSTWORD ufixnum w:LM(16),st:3,t:5,tt:4,s:1,f:1,m:1,e:1
#define FSTPWORD ufixnum w:LM(16),st:3,tp:9, emfs:4
#define MARKWORD ufixnum x:LM(13), t:5,tt:4,s:1, mf:2,e:1
#define SGCMWORD ufixnum x:LM(13), t:5,tt:4, mfs:3,e:1
#define TYPEWORD ufixnum x:LM(13), t:5,tt:4,s:1, emf:3
#define FUNWORD ufixnum y:LM(31),fun_vv:1,fun_neval:5,fun_maxarg:6,fun_minarg:6,t:5,tt:4,s:1,f:1,m:1,e:1
#endif
#if SIZEOF_LONG < 8
#define SPAD object pad
#else
#define SPAD
#endif
struct fixnum_struct {
FIRSTWORD;
fixnum FIXVAL;
};
struct shortfloat_struct {
FIRSTWORD;
shortfloat SFVAL;
};
struct longfloat_struct {
FIRSTWORD;
longfloat LFVAL;
SPAD;
};
struct bignum {
FIRSTWORD;
#ifdef GMP
__mpz_struct big_mpz_t;
#else
plong *big_self;
int big_length;
#endif
};
struct ratio {
FIRSTWORD;
object rat_den;
object rat_num;
SPAD;
};
struct ocomplex {
FIRSTWORD;
object cmp_real;
object cmp_imag;
SPAD;
};
struct character {
FIRSTWORD;
unsigned short ch_code;
unsigned char ch_font;
unsigned char ch_bits;
};
struct symbol {
FIRSTWORD;
object s_dbind;
void (*s_sfdef) ();
char *s_self;
short s_stype;
short s_mflag;
int s_fillp;
object s_gfdef;
object s_plist;
object s_hpack;
SPAD;
};
struct package {
FIRSTWORD;
object p_name;
object p_nicknames;
object p_shadowings;
object p_uselist;
object p_usedbylist;
object *p_internal;
object *p_external;
int p_internal_size;
int p_external_size;
int p_internal_fp;
int p_external_fp;
struct package *p_link;
SPAD;
};
struct cons {
#ifdef WIDE_CONS
FIRSTWORD;
#endif
object c_cdr;
object c_car;
};
struct htent {
object hte_key;
object hte_value;
};
struct hashtable {
FIRSTWORD;
struct htent *ht_self;
object ht_rhsize;
object ht_rhthresh;
int ht_nent;
int ht_size;
short ht_test;
short ht_static;
struct htent *ht_cache;
};
struct array {
FIRSTWORD;
object a_displaced;
short a_rank;
short a_elttype;
object *a_self;
int a_dim;
int *a_dims;
short a_adjustable;
short a_offset;
SPAD;
};
struct vector {
FIRSTWORD;
object v_displaced;
short v_hasfillp;
short v_elttype;
object *v_self;
int v_dim;
int v_fillp;
short v_adjustable;
short v_offset;
SPAD;
};
struct string {
FIRSTWORD;
object st_displaced;
short st_hasfillp;
short st_adjustable;
char *st_self;
int st_dim;
int st_fillp;
};
struct ustring {
FIRSTWORD;
object ust_displaced;
short ust_hasfillp;
short ust_adjustable;
unsigned char *ust_self;
int ust_dim;
int ust_fillp;
};
struct bitvector {
FIRSTWORD;
object bv_displaced;
short bv_hasfillp;
short bv_elttype;
char *bv_self;
int bv_dim;
int bv_fillp;
short bv_adjustable;
short bv_offset;
SPAD;
};
struct fixarray {
FIRSTWORD;
object fixa_displaced;
short fixa_rank;
short fixa_elttype;
fixnum *fixa_self;
int fixa_dim;
int *fixa_dims;
short fixa_adjustable;
short fixa_offset;
SPAD;
};
struct sfarray {
FIRSTWORD;
object sfa_displaced;
short sfa_rank;
short sfa_elttype;
shortfloat *sfa_self;
int sfa_dim;
int *sfa_dims;
short sfa_adjustable;
short sfa_offset;
SPAD;
};
struct lfarray {
FIRSTWORD;
object lfa_displaced;
short lfa_rank;
short lfa_elttype;
longfloat *lfa_self;
int lfa_dim;
int *lfa_dims;
short lfa_adjustable;
short lfa_offset;
SPAD;
};
struct s_data {
object name;
fixnum length;
object raw;
object included;
object includes;
object staticp;
object print_function;
object slot_descriptions;
object slot_position;
fixnum size;
object has_holes;
};
struct structure {
FIRSTWORD;
object str_def;
object *str_self;
SPAD;
};
struct stream {
FIRSTWORD;
void *sm_fp;
object sm_object0;
object sm_object1;
char *sm_buffer;
ufixnum sm_mode:4;
ufixnum sm_flags:6;
ufixnum sm_fd:6;
ufixnum sm_int:LM(16);
};
struct random {
FIRSTWORD;
__gmp_randstate_struct rnd_state;
};
struct readtable {
FIRSTWORD;
struct rtent *rt_self;
object rt_case;
SPAD;
};
struct pathname {
FIRSTWORD;
object pn_host;
object pn_device;
object pn_directory;
object pn_name;
object pn_type;
object pn_version;
object pn_namestring;
};
struct cfun {
FIRSTWORD;
object cf_name;
void (*cf_self) ();
object cf_data;
};
struct cclosure {
FIRSTWORD;
object cc_name;
void (*cc_self) ();
object cc_env;
object cc_data;
int cc_envdim;
object *cc_turbo;
SPAD;
};
struct closure {
FIRSTWORD;
object cl_name;
object (*cl_self) ();
object cl_data;
int cl_argd;
int cl_envdim;
object *cl_env;
};
struct sfun {
FIRSTWORD;
object sfn_name;
object (*sfn_self) ();
object sfn_data;
int sfn_argd;
SPAD;
};
struct vfun {
FIRSTWORD;
object vfn_name;
object (*vfn_self) ();
object vfn_data;
unsigned short vfn_minargs;
unsigned short vfn_maxargs;
SPAD;
};
struct cfdata {
FIRSTWORD;
char *cfd_start;
int cfd_size;
int cfd_fillp:31;
int cfd_prof:1;
object *cfd_self;
SPAD;
};
struct spice {
FIRSTWORD;
int spc_dummy;
};
struct dummy {
FIRSTWORD;
};
struct ff {
ufixnum ff;
};
struct fstpw {
FSTPWORD;
};
union fstp
{
ufixnum ff;
struct fstpw t;
};
struct mark {
MARKWORD;
};
struct typew {
TYPEWORD;
};
struct sgcm {
SGCMWORD;
};
union lispunion {
struct fixnum_struct FIX;
struct bignum big;
struct ratio rat;
struct shortfloat_struct SF;
struct longfloat_struct LF;
struct ocomplex cmp;
struct character ch;
struct symbol s;
struct package p;
struct cons c;
struct hashtable ht;
struct array a;
struct vector v;
struct string st;
struct ustring ust;
struct bitvector bv;
struct structure str;
struct stream sm;
struct random rnd;
struct readtable rt;
struct pathname pn;
struct cfun cf;
struct cclosure cc;
struct closure cl;
struct sfun sfn;
struct vfun vfn;
struct cfdata cfd;
struct spice spc;
struct dummy d;
struct fstpw fstp;
struct ff ff;
struct mark md;
struct sgcm smd;
struct typew td;
fixnum fw;
void *vw;
struct fixarray fixa;
struct sfarray sfa;
struct lfarray lfa;
};
union typeunion {
struct dummy d;
fixnum fw;
};
|