Refactoring

This commit is contained in:
Justin Ethier 2016-04-20 03:18:51 -04:00
parent 79c7cbed97
commit 2ee4cd05b2
2 changed files with 25 additions and 29 deletions

View file

@ -176,33 +176,32 @@ typedef long tag_type;
#define stack_overflow(x,y) ((x) > (y)) #define stack_overflow(x,y) ((x) > (y))
#endif #endif
/* Define object tag values. Could be an enum... // Types of objects
Remember to update tag_names in runtime.c when adding new tags */ // Remember to update tag_names in runtime.c when adding new tags
#define cons_tag 0 enum object_type
#define symbol_tag 1 { cons_tag = 0
#define forward_tag 2 , symbol_tag // 1
#define closure0_tag 3 , forward_tag // 2
#define closure1_tag 4 , closure0_tag // 3
#define closureN_tag 8 , closure1_tag // 4
#define integer_tag 9 , closureN_tag // 5
#define double_tag 10 , integer_tag // 6
#define string_tag 11 , double_tag // 7
#define primitive_tag 12 , string_tag // 8
#define eof_tag 13 , primitive_tag // 9
#define port_tag 14 , eof_tag // 10
#define boolean_tag 15 , port_tag // 11
#define cvar_tag 16 , boolean_tag // 12
#define vector_tag 17 , cvar_tag // 13
#define macro_tag 18 , vector_tag // 14
#define mutex_tag 19 , macro_tag // 15
#define cond_var_tag 20 , mutex_tag // 16
#define bytevector_tag 21 , cond_var_tag // 17
#define c_opaque_tag 22 , bytevector_tag // 18
, c_opaque_tag // 19
};
#define nil NULL
#define eq(x,y) (x == y) #define eq(x,y) (x == y)
#define nullp(x) (x == NULL)
#define type_of(x) (((list) x)->tag) #define type_of(x) (((list) x)->tag)
#define forward(x) (((list) x)->cons_car) #define forward(x) (((list) x)->cons_car)

View file

@ -27,15 +27,12 @@ object Cyc_global_set(void *thd, object *glo, object value)
/* Error checking section - type mismatch, num args, etc */ /* Error checking section - type mismatch, num args, etc */
/* Type names to use for error messages */ /* Type names to use for error messages */
const char *tag_names[24] = { \ const char *tag_names[] = { \
"pair" \ "pair" \
, "symbol" \ , "symbol" \
, "" \ , "" \
, "procedure" \ , "procedure" \
, "procedure" \ , "procedure" \
, "" \
, "" \
, "" \
, "procedure" \ , "procedure" \
, "number" \ , "number" \
, "number" \ , "number" \