Ruby 3.5.0dev (2025-06-08 revision d0b5f3155406e8243b78e4cedd3a38710c7c323c)
id.h
1/* DO NOT EDIT THIS FILE DIRECTLY */
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_STATIC_SYM = 0x01,
18 RUBY_ID_LOCAL = 0x00,
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_JUNK = (0x07<<1),
25 RUBY_ID_INTERNAL = RUBY_ID_JUNK,
26 RUBY_ID_SCOPE_SHIFT = 4,
27 RUBY_ID_SCOPE_MASK = (~(~0U<<(RUBY_ID_SCOPE_SHIFT-1))<<1)
28};
29
30#define ID_STATIC_SYM RUBY_ID_STATIC_SYM
31#define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT
32#define ID_SCOPE_MASK RUBY_ID_SCOPE_MASK
33#define ID_LOCAL RUBY_ID_LOCAL
34#define ID_INSTANCE RUBY_ID_INSTANCE
35#define ID_GLOBAL RUBY_ID_GLOBAL
36#define ID_ATTRSET RUBY_ID_ATTRSET
37#define ID_CONST RUBY_ID_CONST
38#define ID_CLASS RUBY_ID_CLASS
39#define ID_JUNK RUBY_ID_JUNK
40#define ID_INTERNAL RUBY_ID_INTERNAL
41
42#define symIFUNC ID2SYM(idIFUNC)
43#define symCFUNC ID2SYM(idCFUNC)
44
45#define RUBY_TOKEN_DOT2 128
46#define RUBY_TOKEN_DOT3 129
47#define RUBY_TOKEN_BDOT2 130
48#define RUBY_TOKEN_BDOT3 131
49#define RUBY_TOKEN_UPLUS 132
50#define RUBY_TOKEN_UMINUS 133
51#define RUBY_TOKEN_POW 134
52#define RUBY_TOKEN_CMP 135
53#define RUBY_TOKEN_LSHFT 136
54#define RUBY_TOKEN_RSHFT 137
55#define RUBY_TOKEN_LEQ 138
56#define RUBY_TOKEN_GEQ 139
57#define RUBY_TOKEN_EQ 140
58#define RUBY_TOKEN_EQQ 141
59#define RUBY_TOKEN_NEQ 142
60#define RUBY_TOKEN_MATCH 143
61#define RUBY_TOKEN_NMATCH 144
62#define RUBY_TOKEN_AREF 145
63#define RUBY_TOKEN_ASET 146
64#define RUBY_TOKEN_COLON2 147
65#define RUBY_TOKEN_ANDOP 148
66#define RUBY_TOKEN_OROP 149
67#define RUBY_TOKEN_ANDDOT 150
68#define RUBY_TOKEN(t) RUBY_TOKEN_##t
69
70#define RUBY_TOKEN2ID_TYPE(tok, type) ((tok<<RUBY_ID_SCOPE_SHIFT)|type|RUBY_ID_STATIC_SYM)
71#define TOKEN2LOCALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_LOCAL)
72#define TOKEN2INSTANCEID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_INSTANCE)
73#define TOKEN2GLOBALID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_GLOBAL)
74#define TOKEN2CONSTID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CONST)
75#define TOKEN2CLASSID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_CLASS)
76#define TOKEN2ATTRSETID(tok) RUBY_TOKEN2ID_TYPE(tok, RUBY_ID_ATTRSET)
77
78enum ruby_method_ids {
79 idDot2 = RUBY_TOKEN(DOT2),
80 idDot3 = RUBY_TOKEN(DOT3),
81 idUPlus = RUBY_TOKEN(UPLUS),
82 idUMinus = RUBY_TOKEN(UMINUS),
83 idPow = RUBY_TOKEN(POW),
84 idCmp = RUBY_TOKEN(CMP),
85 idPLUS = '+',
86 idMINUS = '-',
87 idMULT = '*',
88 idDIV = '/',
89 idMOD = '%',
90 idLTLT = RUBY_TOKEN(LSHFT),
91 idGTGT = RUBY_TOKEN(RSHFT),
92 idLT = '<',
93 idLE = RUBY_TOKEN(LEQ),
94 idGT = '>',
95 idGE = RUBY_TOKEN(GEQ),
96 idEq = RUBY_TOKEN(EQ),
97 idEqq = RUBY_TOKEN(EQQ),
98 idNeq = RUBY_TOKEN(NEQ),
99 idNot = '!',
100 idAnd = '&',
101 idOr = '|',
102 idBackquote = '`',
103 idEqTilde = RUBY_TOKEN(MATCH),
104 idNeqTilde = RUBY_TOKEN(NMATCH),
105 idAREF = RUBY_TOKEN(AREF),
106 idASET = RUBY_TOKEN(ASET),
107 idCOLON2 = RUBY_TOKEN(COLON2),
108 idANDOP = RUBY_TOKEN(ANDOP),
109 idOROP = RUBY_TOKEN(OROP),
110 idANDDOT = RUBY_TOKEN(ANDDOT),
111 tPRESERVED_ID_BEGIN = 150,
112 idNilP,
113 idIncludeP,
114 idNULL,
115 idEmptyP,
116 idEqlP,
117 idRespond_to,
118 idRespond_to_missing,
119 idIFUNC,
120 idCFUNC,
121 id_core_set_method_alias,
122 id_core_set_variable_alias,
123 id_core_undef_method,
124 id_core_define_method,
125 id_core_define_singleton_method,
126 id_core_set_postexe,
127 id_core_hash_merge_ptr,
128 id_core_hash_merge_kwd,
129 id_core_raise,
130 id_core_sprintf,
131 id_debug_created_info,
132 tPRESERVED_ID_END,
133
134 /* LOCAL tokens {{{ */
135 tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1,
136 tMax,
137 tMin,
138 tHash,
139 tFreeze,
140 tInspect,
141 tIntern,
142 tObject_id,
143 t__id__,
144 tConst_added,
145 tConst_missing,
146 tMethodMissing,
147 tMethod_added,
148 tSingleton_method_added,
149 tMethod_removed,
150 tSingleton_method_removed,
151 tMethod_undefined,
152 tSingleton_method_undefined,
153 tLength,
154 tSize,
155 tGets,
156 tSucc,
157 tEach,
158 tProc,
159 tLambda,
160 tSend,
161 t__send__,
162 t__recursive_key__,
163 tInitialize,
164 tInitialize_copy,
165 tInitialize_clone,
166 tInitialize_dup,
167 tTo_int,
168 tTo_ary,
169 tTo_str,
170 tTo_sym,
171 tTo_hash,
172 tTo_proc,
173 tTo_io,
174 tTo_a,
175 tTo_s,
176 tTo_i,
177 tTo_f,
178 tTo_r,
179 tBt,
180 tBt_locations,
181 tCall,
182 tMesg,
183 tException,
184 tLocals,
185 tNOT,
186 tAND,
187 tOR,
188 tDiv,
189 tDivmod,
190 tFdiv,
191 tQuo,
192 tName,
193 tNil,
194 tPath,
195 tPack,
196 tBuffer,
197 tAborted,
198 tExited,
199 tUScore,
200 tNUMPARAM_1,
201 tNUMPARAM_2,
202 tNUMPARAM_3,
203 tNUMPARAM_4,
204 tNUMPARAM_5,
205 tNUMPARAM_6,
206 tNUMPARAM_7,
207 tNUMPARAM_8,
208 tNUMPARAM_9,
209 tDefault,
210 tTOKEN_LOCAL_END,
211 /* LOCAL tokens }}} */
212
213 /* INSTANCE tokens {{{ */
214 tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1,
215 tTOKEN_INSTANCE_END,
216 /* INSTANCE tokens }}} */
217
218 /* GLOBAL tokens {{{ */
219 tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1,
220 tLASTLINE,
221 tBACKREF,
222 tERROR_INFO,
223 tTOKEN_GLOBAL_END,
224 /* GLOBAL tokens }}} */
225
226 /* CONST tokens {{{ */
227 tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
228 tRuby,
229 tTOKEN_CONST_END,
230 /* CONST tokens }}} */
231
232 /* CLASS tokens {{{ */
233 tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1,
234 tTOKEN_CLASS_END,
235 /* CLASS tokens }}} */
236
237 /* ATTRSET tokens {{{ */
238 tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1,
239 tTOKEN_ATTRSET_END,
240 /* ATTRSET tokens }}} */
241
242 tNEXT_ID = tTOKEN_ATTRSET_END,
243
244 /* LOCAL IDs {{{ */
245#define DEFINE_LOCALID_FROM_TOKEN(n) id##n = TOKEN2LOCALID(t##n)
246 DEFINE_LOCALID_FROM_TOKEN(Max),
247 DEFINE_LOCALID_FROM_TOKEN(Min),
248 DEFINE_LOCALID_FROM_TOKEN(Hash),
249 DEFINE_LOCALID_FROM_TOKEN(Freeze),
250 DEFINE_LOCALID_FROM_TOKEN(Inspect),
251 DEFINE_LOCALID_FROM_TOKEN(Intern),
252 DEFINE_LOCALID_FROM_TOKEN(Object_id),
253 DEFINE_LOCALID_FROM_TOKEN(__id__),
254 DEFINE_LOCALID_FROM_TOKEN(Const_added),
255 DEFINE_LOCALID_FROM_TOKEN(Const_missing),
256 DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
257 DEFINE_LOCALID_FROM_TOKEN(Method_added),
258 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_added),
259 DEFINE_LOCALID_FROM_TOKEN(Method_removed),
260 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_removed),
261 DEFINE_LOCALID_FROM_TOKEN(Method_undefined),
262 DEFINE_LOCALID_FROM_TOKEN(Singleton_method_undefined),
263 DEFINE_LOCALID_FROM_TOKEN(Length),
264 DEFINE_LOCALID_FROM_TOKEN(Size),
265 DEFINE_LOCALID_FROM_TOKEN(Gets),
266 DEFINE_LOCALID_FROM_TOKEN(Succ),
267 DEFINE_LOCALID_FROM_TOKEN(Each),
268 DEFINE_LOCALID_FROM_TOKEN(Proc),
269 DEFINE_LOCALID_FROM_TOKEN(Lambda),
270 DEFINE_LOCALID_FROM_TOKEN(Send),
271 DEFINE_LOCALID_FROM_TOKEN(__send__),
272 DEFINE_LOCALID_FROM_TOKEN(__recursive_key__),
273 DEFINE_LOCALID_FROM_TOKEN(Initialize),
274 DEFINE_LOCALID_FROM_TOKEN(Initialize_copy),
275 DEFINE_LOCALID_FROM_TOKEN(Initialize_clone),
276 DEFINE_LOCALID_FROM_TOKEN(Initialize_dup),
277 DEFINE_LOCALID_FROM_TOKEN(To_int),
278 DEFINE_LOCALID_FROM_TOKEN(To_ary),
279 DEFINE_LOCALID_FROM_TOKEN(To_str),
280 DEFINE_LOCALID_FROM_TOKEN(To_sym),
281 DEFINE_LOCALID_FROM_TOKEN(To_hash),
282 DEFINE_LOCALID_FROM_TOKEN(To_proc),
283 DEFINE_LOCALID_FROM_TOKEN(To_io),
284 DEFINE_LOCALID_FROM_TOKEN(To_a),
285 DEFINE_LOCALID_FROM_TOKEN(To_s),
286 DEFINE_LOCALID_FROM_TOKEN(To_i),
287 DEFINE_LOCALID_FROM_TOKEN(To_f),
288 DEFINE_LOCALID_FROM_TOKEN(To_r),
289 DEFINE_LOCALID_FROM_TOKEN(Bt),
290 DEFINE_LOCALID_FROM_TOKEN(Bt_locations),
291 DEFINE_LOCALID_FROM_TOKEN(Call),
292 DEFINE_LOCALID_FROM_TOKEN(Mesg),
293 DEFINE_LOCALID_FROM_TOKEN(Exception),
294 DEFINE_LOCALID_FROM_TOKEN(Locals),
295 DEFINE_LOCALID_FROM_TOKEN(NOT),
296 DEFINE_LOCALID_FROM_TOKEN(AND),
297 DEFINE_LOCALID_FROM_TOKEN(OR),
298 DEFINE_LOCALID_FROM_TOKEN(Div),
299 DEFINE_LOCALID_FROM_TOKEN(Divmod),
300 DEFINE_LOCALID_FROM_TOKEN(Fdiv),
301 DEFINE_LOCALID_FROM_TOKEN(Quo),
302 DEFINE_LOCALID_FROM_TOKEN(Name),
303 DEFINE_LOCALID_FROM_TOKEN(Nil),
304 DEFINE_LOCALID_FROM_TOKEN(Path),
305 DEFINE_LOCALID_FROM_TOKEN(Pack),
306 DEFINE_LOCALID_FROM_TOKEN(Buffer),
307 DEFINE_LOCALID_FROM_TOKEN(Aborted),
308 DEFINE_LOCALID_FROM_TOKEN(Exited),
309 DEFINE_LOCALID_FROM_TOKEN(UScore),
310 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_1),
311 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_2),
312 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_3),
313 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_4),
314 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_5),
315 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_6),
316 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_7),
317 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_8),
318 DEFINE_LOCALID_FROM_TOKEN(NUMPARAM_9),
319 DEFINE_LOCALID_FROM_TOKEN(Default),
320#undef DEFINE_LOCALID_FROM_TOKEN
321 /* LOCAL IDs }}} */
322
323 /* INSTANCE IDs {{{ */
324#define DEFINE_INSTANCEID_FROM_TOKEN(n) id##n = TOKEN2INSTANCEID(t##n)
325#undef DEFINE_INSTANCEID_FROM_TOKEN
326 /* INSTANCE IDs }}} */
327
328 /* GLOBAL IDs {{{ */
329#define DEFINE_GLOBALID_FROM_TOKEN(n) id##n = TOKEN2GLOBALID(t##n)
330 DEFINE_GLOBALID_FROM_TOKEN(LASTLINE),
331 DEFINE_GLOBALID_FROM_TOKEN(BACKREF),
332 DEFINE_GLOBALID_FROM_TOKEN(ERROR_INFO),
333#undef DEFINE_GLOBALID_FROM_TOKEN
334 /* GLOBAL IDs }}} */
335
336 /* CONST IDs {{{ */
337#define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
338 DEFINE_CONSTID_FROM_TOKEN(Ruby),
339#undef DEFINE_CONSTID_FROM_TOKEN
340 /* CONST IDs }}} */
341
342 /* CLASS IDs {{{ */
343#define DEFINE_CLASSID_FROM_TOKEN(n) id##n = TOKEN2CLASSID(t##n)
344#undef DEFINE_CLASSID_FROM_TOKEN
345 /* CLASS IDs }}} */
346
347 /* ATTRSET IDs {{{ */
348#define DEFINE_ATTRSETID_FROM_TOKEN(n) id##n = TOKEN2ATTRSETID(t##n)
349#undef DEFINE_ATTRSETID_FROM_TOKEN
350 /* ATTRSET IDs }}} */
351
352 tLAST_OP_ID = tPRESERVED_ID_END-1,
353 idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
354};
355
356#endif /* RUBY_ID_H */
Definition dtoa.c:286