1 /* DO NOT EDIT THIS FILE DIRECTLY */
2 /**********************************************************************
3 
4   id.h -
5 
6   $Author: nobu $
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 
16 enum 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_UPLUS 130
48 #define RUBY_TOKEN_UMINUS 131
49 #define RUBY_TOKEN_POW 132
50 #define RUBY_TOKEN_CMP 133
51 #define RUBY_TOKEN_LSHFT 134
52 #define RUBY_TOKEN_RSHFT 135
53 #define RUBY_TOKEN_LEQ 136
54 #define RUBY_TOKEN_GEQ 137
55 #define RUBY_TOKEN_EQ 138
56 #define RUBY_TOKEN_EQQ 139
57 #define RUBY_TOKEN_NEQ 140
58 #define RUBY_TOKEN_MATCH 141
59 #define RUBY_TOKEN_NMATCH 142
60 #define RUBY_TOKEN_AREF 143
61 #define RUBY_TOKEN_ASET 144
62 #define RUBY_TOKEN_COLON2 145
63 #define RUBY_TOKEN_ANDOP 146
64 #define RUBY_TOKEN_OROP 147
65 #define RUBY_TOKEN_ANDDOT 148
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 
76 enum 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 = 148,
110     idNULL,
111     idEmptyP,
112     idEqlP,
113     idRespond_to,
114     idRespond_to_missing,
115     idIFUNC,
116     idCFUNC,
117     id_core_set_method_alias,
118     id_core_set_variable_alias,
119     id_core_undef_method,
120     id_core_define_method,
121     id_core_define_singleton_method,
122     id_core_set_postexe,
123     id_core_hash_merge_ptr,
124     id_core_hash_merge_kwd,
125     id_debug_created_info,
126     tPRESERVED_ID_END,
127     tTOKEN_LOCAL_BEGIN = tPRESERVED_ID_END-1,
128     tMax,
129     tMin,
130     tFreeze,
131     tInspect,
132     tIntern,
133     tObject_id,
134     tConst_missing,
135     tMethodMissing,
136     tMethod_added,
137     tSingleton_method_added,
138     tMethod_removed,
139     tSingleton_method_removed,
140     tMethod_undefined,
141     tSingleton_method_undefined,
142     tLength,
143     tSize,
144     tGets,
145     tSucc,
146     tEach,
147     tProc,
148     tLambda,
149     tSend,
150     t__send__,
151     t__attached__,
152     tInitialize,
153     tInitialize_copy,
154     tInitialize_clone,
155     tInitialize_dup,
156     tTo_int,
157     tTo_ary,
158     tTo_str,
159     tTo_sym,
160     tTo_hash,
161     tTo_proc,
162     tTo_io,
163     tTo_a,
164     tTo_s,
165     tTo_i,
166     tTo_f,
167     tTo_r,
168     tBt,
169     tBt_locations,
170     tCall,
171     tMesg,
172     tException,
173     tNOT,
174     tAND,
175     tOR,
176     tUScore,
177     tTOKEN_LOCAL_END,
178     tTOKEN_INSTANCE_BEGIN = tTOKEN_LOCAL_END-1,
179     tTOKEN_INSTANCE_END,
180     tTOKEN_GLOBAL_BEGIN = tTOKEN_INSTANCE_END-1,
181     tLASTLINE,
182     tBACKREF,
183     tTOKEN_GLOBAL_END,
184     tTOKEN_CONST_BEGIN = tTOKEN_GLOBAL_END-1,
185     tTOKEN_CONST_END,
186     tTOKEN_CLASS_BEGIN = tTOKEN_CONST_END-1,
187     tTOKEN_CLASS_END,
188     tTOKEN_ATTRSET_BEGIN = tTOKEN_CLASS_END-1,
189     tTOKEN_ATTRSET_END,
190     tNEXT_ID = tTOKEN_ATTRSET_END,
191 #define DEFINE_LOCALID_FROM_TOKEN(n) id##n = TOKEN2LOCALID(t##n)
192     DEFINE_LOCALID_FROM_TOKEN(Max),
193     DEFINE_LOCALID_FROM_TOKEN(Min),
194     DEFINE_LOCALID_FROM_TOKEN(Freeze),
195     DEFINE_LOCALID_FROM_TOKEN(Inspect),
196     DEFINE_LOCALID_FROM_TOKEN(Intern),
197     DEFINE_LOCALID_FROM_TOKEN(Object_id),
198     DEFINE_LOCALID_FROM_TOKEN(Const_missing),
199     DEFINE_LOCALID_FROM_TOKEN(MethodMissing),
200     DEFINE_LOCALID_FROM_TOKEN(Method_added),
201     DEFINE_LOCALID_FROM_TOKEN(Singleton_method_added),
202     DEFINE_LOCALID_FROM_TOKEN(Method_removed),
203     DEFINE_LOCALID_FROM_TOKEN(Singleton_method_removed),
204     DEFINE_LOCALID_FROM_TOKEN(Method_undefined),
205     DEFINE_LOCALID_FROM_TOKEN(Singleton_method_undefined),
206     DEFINE_LOCALID_FROM_TOKEN(Length),
207     DEFINE_LOCALID_FROM_TOKEN(Size),
208     DEFINE_LOCALID_FROM_TOKEN(Gets),
209     DEFINE_LOCALID_FROM_TOKEN(Succ),
210     DEFINE_LOCALID_FROM_TOKEN(Each),
211     DEFINE_LOCALID_FROM_TOKEN(Proc),
212     DEFINE_LOCALID_FROM_TOKEN(Lambda),
213     DEFINE_LOCALID_FROM_TOKEN(Send),
214     DEFINE_LOCALID_FROM_TOKEN(__send__),
215     DEFINE_LOCALID_FROM_TOKEN(__attached__),
216     DEFINE_LOCALID_FROM_TOKEN(Initialize),
217     DEFINE_LOCALID_FROM_TOKEN(Initialize_copy),
218     DEFINE_LOCALID_FROM_TOKEN(Initialize_clone),
219     DEFINE_LOCALID_FROM_TOKEN(Initialize_dup),
220     DEFINE_LOCALID_FROM_TOKEN(To_int),
221     DEFINE_LOCALID_FROM_TOKEN(To_ary),
222     DEFINE_LOCALID_FROM_TOKEN(To_str),
223     DEFINE_LOCALID_FROM_TOKEN(To_sym),
224     DEFINE_LOCALID_FROM_TOKEN(To_hash),
225     DEFINE_LOCALID_FROM_TOKEN(To_proc),
226     DEFINE_LOCALID_FROM_TOKEN(To_io),
227     DEFINE_LOCALID_FROM_TOKEN(To_a),
228     DEFINE_LOCALID_FROM_TOKEN(To_s),
229     DEFINE_LOCALID_FROM_TOKEN(To_i),
230     DEFINE_LOCALID_FROM_TOKEN(To_f),
231     DEFINE_LOCALID_FROM_TOKEN(To_r),
232     DEFINE_LOCALID_FROM_TOKEN(Bt),
233     DEFINE_LOCALID_FROM_TOKEN(Bt_locations),
234     DEFINE_LOCALID_FROM_TOKEN(Call),
235     DEFINE_LOCALID_FROM_TOKEN(Mesg),
236     DEFINE_LOCALID_FROM_TOKEN(Exception),
237     DEFINE_LOCALID_FROM_TOKEN(NOT),
238     DEFINE_LOCALID_FROM_TOKEN(AND),
239     DEFINE_LOCALID_FROM_TOKEN(OR),
240     DEFINE_LOCALID_FROM_TOKEN(UScore),
241 #define DEFINE_INSTANCEID_FROM_TOKEN(n) id##n = TOKEN2INSTANCEID(t##n)
242 #define DEFINE_GLOBALID_FROM_TOKEN(n) id##n = TOKEN2GLOBALID(t##n)
243     DEFINE_GLOBALID_FROM_TOKEN(LASTLINE),
244     DEFINE_GLOBALID_FROM_TOKEN(BACKREF),
245 #define DEFINE_CONSTID_FROM_TOKEN(n) id##n = TOKEN2CONSTID(t##n)
246 #define DEFINE_CLASSID_FROM_TOKEN(n) id##n = TOKEN2CLASSID(t##n)
247 #define DEFINE_ATTRSETID_FROM_TOKEN(n) id##n = TOKEN2ATTRSETID(t##n)
248     tLAST_OP_ID = tPRESERVED_ID_END-1,
249     idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
250 };
251 
252 #endif /* RUBY_ID_H */
253