/[gcl]/gcl/h/object.h
ViewVC logotype

Diff of /gcl/h/object.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.50 by camm, Fri Oct 7 18:19:45 2005 UTC revision 1.51 by camm, Wed Oct 12 03:12:57 2005 UTC
# Line 397  typedef struct { Line 397  typedef struct {
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  */
# Line 420  struct vector {           /*  vector hea Line 429  struct vector {           /*  vector hea
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  */
# Line 438  struct string {           /*  string hea Line 448  struct string {           /*  string hea
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  */
# Line 467  struct string {           /*  string hea Line 478  struct string {           /*  string hea
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__);\
# Line 480  struct ustring { Line 494  struct ustring {
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;
# Line 506  struct bitvector {         /*  bitvector Line 521  struct bitvector {         /*  bitvector
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  */
# Line 717  enum chattrib {       /*  character attr Line 733  enum chattrib {       /*  character attr
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  */
# Line 733  struct readtable {       /*  read table Line 762  struct readtable {       /*  read 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    

Legend:
Removed from v.1.50  
changed lines
  Added in v.1.51

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26