1 2 enum { 3 CPT_ESCAPE, /* 0 */ 4 CPT_SYMBOL, 5 CPT_SYMREF, 6 CPT_WEIRD_SYMBOL, 7 CPT_KEYWORD, 8 CPT_BYTE_STRING, 9 CPT_CHAR_STRING, 10 CPT_CHAR, 11 CPT_INT, 12 CPT_NULL, 13 CPT_TRUE, /* 10 */ 14 CPT_FALSE, 15 CPT_VOID, 16 CPT_BOX, 17 CPT_PAIR, 18 CPT_LIST, 19 CPT_VECTOR, 20 CPT_HASH_TABLE, 21 CPT_LET_ONE_TYPED, 22 CPT_LINKLET, 23 CPT_QUOTE, /* 20 */ 24 CPT_REFERENCE, 25 CPT_LOCAL, 26 CPT_LOCAL_UNBOX, 27 CPT_SVECTOR, 28 CPT_APPLICATION, 29 CPT_LET_ONE, 30 CPT_BRANCH, 31 CPT_PATH, 32 CPT_CLOSURE, 33 CPT_DELAY_REF, /* 30 */ 34 CPT_PREFAB, 35 CPT_LET_ONE_UNUSED, 36 CPT_SHARED, 37 CPT_TOPLEVEL, 38 CPT_BEGIN, 39 CPT_BEGIN0, 40 CPT_LET_VALUE, 41 CPT_LET_VOID, 42 CPT_LETREC, 43 CPT_WCM, /* 40 */ 44 CPT_DEFINE_VALUES, 45 CPT_SET_BANG, 46 CPT_VARREF, 47 CPT_APPLY_VALUES, 48 CPT_OTHER_FORM, 49 CPT_SRCLOC, 50 _CPT_COUNT_ 51 }; 52 53 #define CPT_SMALL_NUMBER_START 47 54 #define CPT_SMALL_NUMBER_END 74 55 56 #define CPT_SMALL_SYMBOL_START 74 57 #define CPT_SMALL_SYMBOL_END 92 58 59 #define _SMALL_LIST_MAX_ 50 60 61 #define CPT_SMALL_PROPER_LIST_START 92 62 #define CPT_SMALL_PROPER_LIST_END (CPT_SMALL_PROPER_LIST_START + _SMALL_LIST_MAX_) 63 64 #define CPT_SMALL_LIST_START CPT_SMALL_PROPER_LIST_END 65 #define CPT_SMALL_LIST_END (CPT_SMALL_LIST_START + _SMALL_LIST_MAX_) 66 67 #define CPT_SMALL_LOCAL_START 192 68 #define CPT_SMALL_LOCAL_END 207 69 #define CPT_SMALL_LOCAL_UNBOX_START 207 70 #define CPT_SMALL_LOCAL_UNBOX_END 222 71 72 #define CPT_SMALL_SVECTOR_START 222 73 #define CPT_SMALL_SVECTOR_END 247 74 75 #define CPT_SMALL_APPLICATION_START 247 76 #define CPT_SMALL_APPLICATION_END 255 77 #define CPT_SMALL_APPLICATION2 248 78 #define CPT_SMALL_APPLICATION3 249 79 80 #define CPT_BETWEEN(x, s) ((x >= CPT_ ## s ## _START) && (x < CPT_ ## s ## _END)) 81 #define CPT_RANGE(s) (CPT_ ## s ## _END - CPT_ ## s ## _START) 82