397 |
} aet_type_struct; |
} aet_type_struct; |
398 |
|
|
399 |
|
|
400 |
|
#if SIZEOF_LONG == 4 |
401 |
|
#define HFILL_BITS 15 |
402 |
|
#elif SIZEOF_LONG == 8 |
403 |
|
#define HFILL_BITS 31 |
404 |
|
#else |
405 |
|
#error Cannot calculate HFILL_BITS |
406 |
|
#endif |
407 |
|
|
408 |
struct array { /* array header */ |
struct array { /* array header */ |
409 |
|
|
410 |
FIRSTWORD; |
FIRSTWORD; |
411 |
|
|
412 |
object a_displaced; /* displaced */ |
object a_displaced; /* displaced */ |
413 |
hfixnum a_rank; /* array rank */ |
hfixnum a_hasfillp:1; /* fillp compatability */ |
414 |
|
hfixnum a_rank:HFILL_BITS; /* array rank */ |
415 |
hfixnum a_elttype; /* element type */ |
hfixnum a_elttype; /* element type */ |
416 |
object *a_self; /* pointer to the array */ |
object *a_self; /* pointer to the array */ |
417 |
hfixnum a_adjustable; /* adjustable flag */ |
hfixnum a_adjustable; /* adjustable flag */ |
429 |
FIRSTWORD; |
FIRSTWORD; |
430 |
|
|
431 |
object v_displaced; /* displaced */ |
object v_displaced; /* displaced */ |
432 |
hfixnum v_hasfillp; /* has-fill-pointer flag */ |
hfixnum v_hasfillp:1; /* has-fill-pointer flag */ |
433 |
|
hfixnum v_unused:HFILL_BITS; /* rank compatibility */ |
434 |
hfixnum v_elttype; /* element type */ |
hfixnum v_elttype; /* element type */ |
435 |
object *v_self; /* pointer to the vector */ |
object *v_self; /* pointer to the vector */ |
436 |
fixnum v_fillp; /* fill pointer */ |
fixnum v_fillp; /* fill pointer */ |
448 |
FIRSTWORD; |
FIRSTWORD; |
449 |
|
|
450 |
object st_displaced; /* displaced */ |
object st_displaced; /* displaced */ |
451 |
hfixnum st_hasfillp; /* has-fill-pointer flag */ |
hfixnum st_hasfillp:1; /* has-fill-pointer flag */ |
452 |
|
hfixnum st_unused:HFILL_BITS; /* rank compatibility */ |
453 |
hfixnum st_adjustable; /* adjustable flag */ |
hfixnum st_adjustable; /* adjustable flag */ |
454 |
char *st_self; /* pointer to the string */ |
char *st_self; /* pointer to the string */ |
455 |
fixnum st_fillp; /* fill pointer */ |
fixnum st_fillp; /* fill pointer */ |
478 |
#define CONTROL_ERROR(a_) {stack_string(tp_err,a_);\ |
#define CONTROL_ERROR(a_) {stack_string(tp_err,a_);\ |
479 |
Icall_error_handler(sKcontrol_error,tp_err,0);} |
Icall_error_handler(sKcontrol_error,tp_err,0);} |
480 |
|
|
481 |
|
#define READER_ERROR(a_) {stack_string(tp_err,a_);\ |
482 |
|
Icall_error_handler(sKreader_error,tp_err,0);} |
483 |
|
|
484 |
#define NERROR(a_) {stack_string(fmt,a_ ": line ~a, file ~a, function ~a");\ |
#define NERROR(a_) {stack_string(fmt,a_ ": line ~a, file ~a, function ~a");\ |
485 |
{stack_fixnum(line,__LINE__);\ |
{stack_fixnum(line,__LINE__);\ |
486 |
{stack_string(file,__FILE__);\ |
{stack_string(file,__FILE__);\ |
494 |
FIRSTWORD; |
FIRSTWORD; |
495 |
|
|
496 |
object ust_displaced; |
object ust_displaced; |
497 |
hfixnum ust_hasfillp; |
hfixnum ust_hasfillp:1; |
498 |
|
hfixnum ust_unused:HFILL_BITS; /* rank compatibility */ |
499 |
hfixnum ust_adjustable; |
hfixnum ust_adjustable; |
500 |
unsigned char *ust_self; |
unsigned char *ust_self; |
501 |
fixnum ust_fillp; |
fixnum ust_fillp; |
521 |
FIRSTWORD; |
FIRSTWORD; |
522 |
|
|
523 |
object bv_displaced; /* displaced */ |
object bv_displaced; /* displaced */ |
524 |
hfixnum bv_hasfillp; /* has-fill-pointer flag */ |
hfixnum bv_hasfillp:1; /* has-fill-pointer flag */ |
525 |
|
hfixnum bv_unused:HFILL_BITS; /* rank compatibility */ |
526 |
hfixnum bv_elttype; /* not used */ |
hfixnum bv_elttype; /* not used */ |
527 |
char *bv_self; /* pointer to the bitvector */ |
char *bv_self; /* pointer to the bitvector */ |
528 |
fixnum bv_fillp; /* fill pointer */ |
fixnum bv_fillp; /* fill pointer */ |
733 |
cat_constituent /* constituent */ |
cat_constituent /* constituent */ |
734 |
}; |
}; |
735 |
|
|
736 |
|
enum chatrait { /* character attribute */ |
737 |
|
trait_alpha, /* alphabetic */ |
738 |
|
trait_digit, /* digits */ |
739 |
|
trait_alphadigit, /* alpha/digit */ |
740 |
|
trait_package, /* package mrk */ |
741 |
|
trait_plus, /* plus sign */ |
742 |
|
trait_minus, /* minus sign */ |
743 |
|
trait_ratio, /* ratio mrk */ |
744 |
|
trait_exp, /* expon mrk */ |
745 |
|
trait_invalid /* unreadable */ |
746 |
|
}; |
747 |
|
|
748 |
struct rtent { /* read table entry */ |
struct rtent { /* read table entry */ |
749 |
enum chattrib rte_chattrib; /* character attribute */ |
enum chattrib rte_chattrib; /* character attribute */ |
750 |
|
enum chatrait rte_chatrait; /* constituent trait */ |
751 |
object rte_macro; /* macro function */ |
object rte_macro; /* macro function */ |
752 |
object *rte_dtab; /* pointer to the */ |
object *rte_dtab; /* pointer to the */ |
753 |
/* dispatch table */ |
/* dispatch table */ |
762 |
FIRSTWORD; |
FIRSTWORD; |
763 |
|
|
764 |
struct rtent *rt_self; /* read table itself */ |
struct rtent *rt_self; /* read table itself */ |
765 |
|
object rt_case; |
766 |
|
SPAD; |
767 |
|
|
768 |
}; |
}; |
769 |
|
|