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