18 RUBY_ID_STATIC_SYM = 0x01,
19 RUBY_ID_INSTANCE = (0x01<<1),
20 RUBY_ID_GLOBAL = (0x03<<1),
21 RUBY_ID_ATTRSET = (0x04<<1),
22 RUBY_ID_CONST = (0x05<<1),
23 RUBY_ID_CLASS = (0x06<<1),
24 RUBY_ID_INTERNAL = (0x07<<1),
25 RUBY_ID_SCOPE_SHIFT = 4,
26 RUBY_ID_SCOPE_MASK = (~(~0
U<<(RUBY_ID_SCOPE_SHIFT-1))<<1)
29#define ID_STATIC_SYM RUBY_ID_STATIC_SYM
30#define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT
31#define ID_SCOPE_MASK RUBY_ID_SCOPE_MASK
32#define ID_LOCAL RUBY_ID_LOCAL
33#define ID_INSTANCE RUBY_ID_INSTANCE
34#define ID_GLOBAL RUBY_ID_GLOBAL
35#define ID_ATTRSET RUBY_ID_ATTRSET
36#define ID_CONST RUBY_ID_CONST
37#define ID_CLASS RUBY_ID_CLASS
38#define ID_INTERNAL RUBY_ID_INTERNAL
40#define symIFUNC ID2SYM(idIFUNC)
41#define symCFUNC ID2SYM(idCFUNC)
43#define RUBY_TOKEN_DOT2 128
44#define RUBY_TOKEN_DOT3 129
45#define RUBY_TOKEN_BDOT2 130
46#define RUBY_TOKEN_BDOT3 131
47#define RUBY_TOKEN_UPLUS 132
48#define RUBY_TOKEN_UMINUS 133
49#define RUBY_TOKEN_POW 134
50#define RUBY_TOKEN_CMP 135
51#define RUBY_TOKEN_LSHFT 136
52#define RUBY_TOKEN_RSHFT 137
53#define RUBY_TOKEN_LEQ 138
54#define RUBY_TOKEN_GEQ 139
55#define RUBY_TOKEN_EQ 140
56#define RUBY_TOKEN_EQQ 141
57#define RUBY_TOKEN_NEQ 142
58#define RUBY_TOKEN_MATCH 143
59#define RUBY_TOKEN_NMATCH 144
60#define RUBY_TOKEN_AREF 145
61#define RUBY_TOKEN_ASET 146
62#define RUBY_TOKEN_COLON2 147
63#define RUBY_TOKEN_ANDOP 148
64#define RUBY_TOKEN_OROP 149
65#define RUBY_TOKEN_ANDDOT 150
66#define RUBY_TOKEN(t) RUBY_TOKEN_##t
68#define RUBY_TOKEN2ID_TYPE(tok, type) ((tok<<RUBY_ID_SCOPE_SHIFT)|type|RUBY_ID_STATIC_SYM)
69#define TOKEN2LOCALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_LOCAL)
70#define TOKEN2INSTANCEID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_INSTANCE)
71#define TOKEN2GLOBALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_GLOBAL)
72#define TOKEN2CONSTID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CONST)
73#define TOKEN2CLASSID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CLASS)
74#define TOKEN2ATTRSETID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_ATTRSET)
77 idDot2 = RUBY_TOKEN(DOT2),
78 idDot3 = RUBY_TOKEN(DOT3),
79 idUPlus = RUBY_TOKEN(UPLUS),
80 idUMinus = RUBY_TOKEN(UMINUS),
81 idPow = RUBY_TOKEN(POW),
82 idCmp = RUBY_TOKEN(CMP),
88 idLTLT = RUBY_TOKEN(LSHFT),
89 idGTGT = RUBY_TOKEN(RSHFT),
91 idLE = RUBY_TOKEN(LEQ),
93 idGE = RUBY_TOKEN(GEQ),
94 idEq = RUBY_TOKEN(EQ),
95 idEqq = RUBY_TOKEN(EQQ),
96 idNeq = RUBY_TOKEN(NEQ),
101 idEqTilde = RUBY_TOKEN(MATCH),
102 idNeqTilde = RUBY_TOKEN(NMATCH),
103 idAREF = RUBY_TOKEN(AREF),
104 idASET = RUBY_TOKEN(ASET),
105 idCOLON2 = RUBY_TOKEN(COLON2),
106 idANDOP = RUBY_TOKEN(ANDOP),
107 idOROP = RUBY_TOKEN(OROP),
108 idANDDOT = RUBY_TOKEN(ANDDOT),
109 tPRESERVED_ID_BEGIN = 150,
116 idRespond_to_missing,
119 id_core_set_method_alias,
120 id_core_set_variable_alias,
121 id_core_undef_method,
122 id_core_define_method,
123 id_core_define_singleton_method,
125 id_core_hash_merge_ptr,
126 id_core_hash_merge_kwd,
129 id_debug_created_info,
133 tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1,
146 tSingleton_method_added,
148 tSingleton_method_removed,
150 tSingleton_method_undefined,
212 tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1,
217 tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1,
225 tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
231 tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1,
236 tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1,
240 tNEXT_ID = tTOKEN_ATTRSET_END,
243#define DEFINE_LOCALID_FROM_TOKEN(n) id##n = TOKEN2LOCALID(t##n)
244 DEFINE_LOCALID_FROM_TOKEN(Max),
245 DEFINE_LOCALID_FROM_TOKEN(Min),
246 DEFINE_LOCALID_FROM_TOKEN(Hash),
247 DEFINE_LOCALID_FROM_TOKEN(Freeze),
248 DEFINE_LOCALID_FROM_TOKEN(Inspect),
249 DEFINE_LOCALID_FROM_TOKEN(Intern),
250 DEFINE_LOCALID_FROM_TOKEN(Object_id),
251 DEFINE_LOCALID_FROM_TOKEN(__id__),
252 DEFINE_LOCALID_FROM_TOKEN(Const_added),
253 DEFINE_LOCALID_FROM_TOKEN(Const_missing),
254 DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
255 DEFINE_LOCALID_FROM_TOKEN(Method_added),
256 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_added),
257 DEFINE_LOCALID_FROM_TOKEN(Method_removed),
258 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_removed),
259 DEFINE_LOCALID_FROM_TOKEN(Method_undefined),
260 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_undefined),
261 DEFINE_LOCALID_FROM_TOKEN(Length),
262 DEFINE_LOCALID_FROM_TOKEN(Size),
263 DEFINE_LOCALID_FROM_TOKEN(Gets),
264 DEFINE_LOCALID_FROM_TOKEN(Succ),
265 DEFINE_LOCALID_FROM_TOKEN(Each),
266 DEFINE_LOCALID_FROM_TOKEN(Proc),
267 DEFINE_LOCALID_FROM_TOKEN(Lambda),
268 DEFINE_LOCALID_FROM_TOKEN(Send),
269 DEFINE_LOCALID_FROM_TOKEN(__send__),
270 DEFINE_LOCALID_FROM_TOKEN(__recursive_key__),
271 DEFINE_LOCALID_FROM_TOKEN(Initialize),
272 DEFINE_LOCALID_FROM_TOKEN(Initialize_copy),
273 DEFINE_LOCALID_FROM_TOKEN(Initialize_clone),
274 DEFINE_LOCALID_FROM_TOKEN(Initialize_dup),
275 DEFINE_LOCALID_FROM_TOKEN(To_int),
276 DEFINE_LOCALID_FROM_TOKEN(To_ary),
277 DEFINE_LOCALID_FROM_TOKEN(To_str),
278 DEFINE_LOCALID_FROM_TOKEN(To_sym),
279 DEFINE_LOCALID_FROM_TOKEN(To_hash),
280 DEFINE_LOCALID_FROM_TOKEN(To_proc),
281 DEFINE_LOCALID_FROM_TOKEN(To_io),
282 DEFINE_LOCALID_FROM_TOKEN(To_a),
283 DEFINE_LOCALID_FROM_TOKEN(To_s),
284 DEFINE_LOCALID_FROM_TOKEN(To_i),
285 DEFINE_LOCALID_FROM_TOKEN(To_f),
286 DEFINE_LOCALID_FROM_TOKEN(To_r),
287 DEFINE_LOCALID_FROM_TOKEN(Bt),
288 DEFINE_LOCALID_FROM_TOKEN(Bt_locations),
289 DEFINE_LOCALID_FROM_TOKEN(Call),
290 DEFINE_LOCALID_FROM_TOKEN(Mesg),
291 DEFINE_LOCALID_FROM_TOKEN(Exception),
292 DEFINE_LOCALID_FROM_TOKEN(Locals),
293 DEFINE_LOCALID_FROM_TOKEN(NOT),
294 DEFINE_LOCALID_FROM_TOKEN(AND),
295 DEFINE_LOCALID_FROM_TOKEN(OR),
296 DEFINE_LOCALID_FROM_TOKEN(Div),
297 DEFINE_LOCALID_FROM_TOKEN(Divmod),
298 DEFINE_LOCALID_FROM_TOKEN(Fdiv),
299 DEFINE_LOCALID_FROM_TOKEN(Quo),
300 DEFINE_LOCALID_FROM_TOKEN(Name),
301 DEFINE_LOCALID_FROM_TOKEN(Nil),
302 DEFINE_LOCALID_FROM_TOKEN(Path),
303 DEFINE_LOCALID_FROM_TOKEN(Pack),
304 DEFINE_LOCALID_FROM_TOKEN(Buffer),
305 DEFINE_LOCALID_FROM_TOKEN(Aborted),
306 DEFINE_LOCALID_FROM_TOKEN(Exited),
307 DEFINE_LOCALID_FROM_TOKEN(UScore),
308 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_1),
309 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_2),
310 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_3),
311 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_4),
312 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_5),
313 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_6),
314 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_7),
315 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_8),
316 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_9),
317 DEFINE_LOCALID_FROM_TOKEN(Default),
318#undef DEFINE_LOCALID_FROM_TOKEN
322#define DEFINE_INSTANCEID_FROM_TOKEN(n) id##n = TOKEN2INSTANCEID(t##n)
323#undef DEFINE_INSTANCEID_FROM_TOKEN
327#define DEFINE_GLOBALID_FROM_TOKEN(n) id##n = TOKEN2GLOBALID(t##n)
328 DEFINE_GLOBALID_FROM_TOKEN(LASTLINE),
329 DEFINE_GLOBALID_FROM_TOKEN(BACKREF),
330 DEFINE_GLOBALID_FROM_TOKEN(ERROR_INFO),
331#undef DEFINE_GLOBALID_FROM_TOKEN
335#define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
336 DEFINE_CONSTID_FROM_TOKEN(Ruby),
337#undef DEFINE_CONSTID_FROM_TOKEN
341#define DEFINE_CLASSID_FROM_TOKEN(n) id##n = TOKEN2CLASSID(t##n)
342#undef DEFINE_CLASSID_FROM_TOKEN
346#define DEFINE_ATTRSETID_FROM_TOKEN(n) id##n = TOKEN2ATTRSETID(t##n)
347#undef DEFINE_ATTRSETID_FROM_TOKEN
350 tLAST_OP_ID = tPRESERVED_ID_END-1,
351 idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT