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