Ruby 4.1.0dev (2026-11-12 revision acc624e47b178e3514d848a949f8e25d4e49e175)
id.h
1/* DO NOT EDIT THIS FILE DIRECTLY: source is at template/id.h.tmpl */
2/**********************************************************************
3
4 id.h -
5
6 $Author$
7 created at: Sun Oct 19 21:12:51 2008
8
9 Copyright (C) 2007 Koichi Sasada
10
11**********************************************************************/
12
13#ifndef RUBY_ID_H
14#define RUBY_ID_H
15
16enum ruby_id_types {
17 RUBY_ID_LOCAL = 0x00,
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 = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1)
27};
28
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
39
40#define symIFUNC ID2SYM(idIFUNC)
41#define symCFUNC ID2SYM(idCFUNC)
42
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
67
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)
75
76enum ruby_method_ids {
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),
83 idPLUS = '+',
84 idMINUS = '-',
85 idMULT = '*',
86 idDIV = '/',
87 idMOD = '%',
88 idLTLT = RUBY_TOKEN(LSHFT),
89 idGTGT = RUBY_TOKEN(RSHFT),
90 idLT = '<',
91 idLE = RUBY_TOKEN(LEQ),
92 idGT = '>',
93 idGE = RUBY_TOKEN(GEQ),
94 idEq = RUBY_TOKEN(EQ),
95 idEqq = RUBY_TOKEN(EQQ),
96 idNeq = RUBY_TOKEN(NEQ),
97 idNot = '!',
98 idAnd = '&',
99 idOr = '|',
100 idBackquote = '`',
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,
110 idNilP,
111 idIncludeP,
112 idItImplicit,
113 idNULL,
114 idEmptyP,
115 idEqlP,
116 idRespond_to,
117 idRespond_to_missing,
118 idIFUNC,
119 idCFUNC,
120 id_core_set_method_alias,
121 id_core_set_variable_alias,
122 id_core_undef_method,
123 id_core_define_method,
124 id_core_define_singleton_method,
125 id_core_iseq_path,
126 id_core_set_postexe,
127 id_core_hash_merge_ptr,
128 id_core_hash_merge_bang_ptr,
129 id_core_hash_merge_kwd,
130 id_core_hash_merge_bang_kwd,
131 id_core_raise,
132 id_core_sprintf,
133 id_debug_created_info,
134 tPRESERVED_ID_END,
135
136 /* LOCAL tokens {{{ */
137 tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1,
138 tMax,
139 tMin,
140 tHash,
141 tFreeze,
142 tInspect,
143 tIntern,
144 tObject_id,
145 t__id__,
146 tConst_added,
147 tConst_missing,
148 tMethodMissing,
149 tMethod_added,
150 tSingleton_method_added,
151 tMethod_removed,
152 tSingleton_method_removed,
153 tMethod_undefined,
154 tSingleton_method_undefined,
155 tNew,
156 tLength,
157 tCapacity,
158 tSize,
159 tGets,
160 tSucc,
161 tEach,
162 tProc,
163 tLambda,
164 tSend,
165 t__send__,
166 t__recursive_key__,
167 tClone,
168 tInitialize,
169 tInitialize_copy,
170 tInitialize_clone,
171 tInitialize_dup,
172 tTo_int,
173 tTo_ary,
174 tTo_str,
175 tTo_sym,
176 tTo_hash,
177 tTo_proc,
178 tTo_io,
179 tTo_a,
180 tTo_s,
181 tTo_i,
182 tTo_f,
183 tTo_r,
184 tBt,
185 tBt_locations,
186 tCall,
187 tYield,
188 tMesg,
189 tException,
190 tLocals,
191 tNOT,
192 tAND,
193 tOR,
194 tDiv,
195 tDivmod,
196 tFdiv,
197 tQuo,
198 tName,
199 tNil,
200 tPath,
201 tPack,
202 tBuffer,
203 tAborted,
204 tExited,
205 tEncoding,
206 tUScore,
207 tNUMPARAM_1,
208 tNUMPARAM_2,
209 tNUMPARAM_3,
210 tNUMPARAM_4,
211 tNUMPARAM_5,
212 tNUMPARAM_6,
213 tNUMPARAM_7,
214 tNUMPARAM_8,
215 tNUMPARAM_9,
216 tIt,
217 tDefault,
218 tTOKEN_LOCAL_END,
219 /* LOCAL tokens }}} */
220
221 /* INSTANCE tokens {{{ */
222 tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1,
223 tTOKEN_INSTANCE_END,
224 /* INSTANCE tokens }}} */
225
226 /* GLOBAL tokens {{{ */
227 tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1,
228 tLASTLINE,
229 tBACKREF,
230 tERROR_INFO,
231 tTOKEN_GLOBAL_END,
232 /* GLOBAL tokens }}} */
233
234 /* CONST tokens {{{ */
235 tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
236 tRuby,
237 tTOKEN_CONST_END,
238 /* CONST tokens }}} */
239
240 /* CLASS tokens {{{ */
241 tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1,
242 tTOKEN_CLASS_END,
243 /* CLASS tokens }}} */
244
245 /* ATTRSET tokens {{{ */
246 tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1,
247 tTOKEN_ATTRSET_END,
248 /* ATTRSET tokens }}} */
249
250 tNEXT_ID = tTOKEN_ATTRSET_END,
251
252 /* LOCAL IDs {{{ */
253#define DEFINE_LOCALID_FROM_TOKEN(n) id##n = TOKEN2LOCALID(t##n)
254 DEFINE_LOCALID_FROM_TOKEN(Max),
255 DEFINE_LOCALID_FROM_TOKEN(Min),
256 DEFINE_LOCALID_FROM_TOKEN(Hash),
257 DEFINE_LOCALID_FROM_TOKEN(Freeze),
258 DEFINE_LOCALID_FROM_TOKEN(Inspect),
259 DEFINE_LOCALID_FROM_TOKEN(Intern),
260 DEFINE_LOCALID_FROM_TOKEN(Object_id),
261 DEFINE_LOCALID_FROM_TOKEN(__id__),
262 DEFINE_LOCALID_FROM_TOKEN(Const_added),
263 DEFINE_LOCALID_FROM_TOKEN(Const_missing),
264 DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
265 DEFINE_LOCALID_FROM_TOKEN(Method_added),
266 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_added),
267 DEFINE_LOCALID_FROM_TOKEN(Method_removed),
268 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_removed),
269 DEFINE_LOCALID_FROM_TOKEN(Method_undefined),
270 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_undefined),
271 DEFINE_LOCALID_FROM_TOKEN(New),
272 DEFINE_LOCALID_FROM_TOKEN(Length),
273 DEFINE_LOCALID_FROM_TOKEN(Capacity),
274 DEFINE_LOCALID_FROM_TOKEN(Size),
275 DEFINE_LOCALID_FROM_TOKEN(Gets),
276 DEFINE_LOCALID_FROM_TOKEN(Succ),
277 DEFINE_LOCALID_FROM_TOKEN(Each),
278 DEFINE_LOCALID_FROM_TOKEN(Proc),
279 DEFINE_LOCALID_FROM_TOKEN(Lambda),
280 DEFINE_LOCALID_FROM_TOKEN(Send),
281 DEFINE_LOCALID_FROM_TOKEN(__send__),
282 DEFINE_LOCALID_FROM_TOKEN(__recursive_key__),
283 DEFINE_LOCALID_FROM_TOKEN(Clone),
284 DEFINE_LOCALID_FROM_TOKEN(Initialize),
285 DEFINE_LOCALID_FROM_TOKEN(Initialize_copy),
286 DEFINE_LOCALID_FROM_TOKEN(Initialize_clone),
287 DEFINE_LOCALID_FROM_TOKEN(Initialize_dup),
288 DEFINE_LOCALID_FROM_TOKEN(To_int),
289 DEFINE_LOCALID_FROM_TOKEN(To_ary),
290 DEFINE_LOCALID_FROM_TOKEN(To_str),
291 DEFINE_LOCALID_FROM_TOKEN(To_sym),
292 DEFINE_LOCALID_FROM_TOKEN(To_hash),
293 DEFINE_LOCALID_FROM_TOKEN(To_proc),
294 DEFINE_LOCALID_FROM_TOKEN(To_io),
295 DEFINE_LOCALID_FROM_TOKEN(To_a),
296 DEFINE_LOCALID_FROM_TOKEN(To_s),
297 DEFINE_LOCALID_FROM_TOKEN(To_i),
298 DEFINE_LOCALID_FROM_TOKEN(To_f),
299 DEFINE_LOCALID_FROM_TOKEN(To_r),
300 DEFINE_LOCALID_FROM_TOKEN(Bt),
301 DEFINE_LOCALID_FROM_TOKEN(Bt_locations),
302 DEFINE_LOCALID_FROM_TOKEN(Call),
303 DEFINE_LOCALID_FROM_TOKEN(Yield),
304 DEFINE_LOCALID_FROM_TOKEN(Mesg),
305 DEFINE_LOCALID_FROM_TOKEN(Exception),
306 DEFINE_LOCALID_FROM_TOKEN(Locals),
307 DEFINE_LOCALID_FROM_TOKEN(NOT),
308 DEFINE_LOCALID_FROM_TOKEN(AND),
309 DEFINE_LOCALID_FROM_TOKEN(OR),
310 DEFINE_LOCALID_FROM_TOKEN(Div),
311 DEFINE_LOCALID_FROM_TOKEN(Divmod),
312 DEFINE_LOCALID_FROM_TOKEN(Fdiv),
313 DEFINE_LOCALID_FROM_TOKEN(Quo),
314 DEFINE_LOCALID_FROM_TOKEN(Name),
315 DEFINE_LOCALID_FROM_TOKEN(Nil),
316 DEFINE_LOCALID_FROM_TOKEN(Path),
317 DEFINE_LOCALID_FROM_TOKEN(Pack),
318 DEFINE_LOCALID_FROM_TOKEN(Buffer),
319 DEFINE_LOCALID_FROM_TOKEN(Aborted),
320 DEFINE_LOCALID_FROM_TOKEN(Exited),
321 DEFINE_LOCALID_FROM_TOKEN(Encoding),
322 DEFINE_LOCALID_FROM_TOKEN(UScore),
323 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_1),
324 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_2),
325 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_3),
326 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_4),
327 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_5),
328 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_6),
329 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_7),
330 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_8),
331 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_9),
332 DEFINE_LOCALID_FROM_TOKEN(It),
333 DEFINE_LOCALID_FROM_TOKEN(Default),
334#undef DEFINE_LOCALID_FROM_TOKEN
335 /* LOCAL IDs }}} */
336
337 /* INSTANCE IDs {{{ */
338#define DEFINE_INSTANCEID_FROM_TOKEN(n) id##n = TOKEN2INSTANCEID(t##n)
339#undef DEFINE_INSTANCEID_FROM_TOKEN
340 /* INSTANCE IDs }}} */
341
342 /* GLOBAL IDs {{{ */
343#define DEFINE_GLOBALID_FROM_TOKEN(n) id##n = TOKEN2GLOBALID(t##n)
344 DEFINE_GLOBALID_FROM_TOKEN(LASTLINE),
345 DEFINE_GLOBALID_FROM_TOKEN(BACKREF),
346 DEFINE_GLOBALID_FROM_TOKEN(ERROR_INFO),
347#undef DEFINE_GLOBALID_FROM_TOKEN
348 /* GLOBAL IDs }}} */
349
350 /* CONST IDs {{{ */
351#define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
352 DEFINE_CONSTID_FROM_TOKEN(Ruby),
353#undef DEFINE_CONSTID_FROM_TOKEN
354 /* CONST IDs }}} */
355
356 /* CLASS IDs {{{ */
357#define DEFINE_CLASSID_FROM_TOKEN(n) id##n = TOKEN2CLASSID(t##n)
358#undef DEFINE_CLASSID_FROM_TOKEN
359 /* CLASS IDs }}} */
360
361 /* ATTRSET IDs {{{ */
362#define DEFINE_ATTRSETID_FROM_TOKEN(n) id##n = TOKEN2ATTRSETID(t##n)
363#undef DEFINE_ATTRSETID_FROM_TOKEN
364 /* ATTRSET IDs }}} */
365
366 tLAST_OP_ID = tPRESERVED_ID_END-1,
367 idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
368};
369
370#endif /* RUBY_ID_H */
Definition dtoa.c:309