00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef RUBY_ID_H
00014 #define RUBY_ID_H
00015
00016 enum ruby_id_types {
00017 RUBY_ID_LOCAL = 0x00,
00018 RUBY_ID_INSTANCE = 0x01,
00019 RUBY_ID_GLOBAL = 0x03,
00020 RUBY_ID_ATTRSET = 0x04,
00021 RUBY_ID_CONST = 0x05,
00022 RUBY_ID_CLASS = 0x06,
00023 RUBY_ID_JUNK = 0x07,
00024 RUBY_ID_INTERNAL = RUBY_ID_JUNK,
00025 RUBY_ID_SCOPE_SHIFT = 3,
00026 RUBY_ID_SCOPE_MASK = ~(~0U<<RUBY_ID_SCOPE_SHIFT)
00027 };
00028
00029 #define ID_SCOPE_SHIFT RUBY_ID_SCOPE_SHIFT
00030 #define ID_SCOPE_MASK RUBY_ID_SCOPE_MASK
00031 #define ID_LOCAL RUBY_ID_LOCAL
00032 #define ID_INSTANCE RUBY_ID_INSTANCE
00033 #define ID_GLOBAL RUBY_ID_GLOBAL
00034 #define ID_ATTRSET RUBY_ID_ATTRSET
00035 #define ID_CONST RUBY_ID_CONST
00036 #define ID_CLASS RUBY_ID_CLASS
00037 #define ID_JUNK RUBY_ID_JUNK
00038 #define ID_INTERNAL RUBY_ID_INTERNAL
00039
00040 #define ID2ATTRSET(id) (((id)&~ID_SCOPE_MASK)|ID_ATTRSET)
00041
00042 #define symIFUNC ID2SYM(idIFUNC)
00043 #define symCFUNC ID2SYM(idCFUNC)
00044
00045 #define RUBY_TOKEN_DOT2 128
00046 #define RUBY_TOKEN_DOT3 129
00047 #define RUBY_TOKEN_UPLUS 130
00048 #define RUBY_TOKEN_UMINUS 131
00049 #define RUBY_TOKEN_POW 132
00050 #define RUBY_TOKEN_DSTAR 133
00051 #define RUBY_TOKEN_CMP 134
00052 #define RUBY_TOKEN_LSHFT 135
00053 #define RUBY_TOKEN_RSHFT 136
00054 #define RUBY_TOKEN_LEQ 137
00055 #define RUBY_TOKEN_GEQ 138
00056 #define RUBY_TOKEN_EQ 139
00057 #define RUBY_TOKEN_EQQ 140
00058 #define RUBY_TOKEN_NEQ 141
00059 #define RUBY_TOKEN_MATCH 142
00060 #define RUBY_TOKEN_NMATCH 143
00061 #define RUBY_TOKEN_AREF 144
00062 #define RUBY_TOKEN_ASET 145
00063 #define RUBY_TOKEN_COLON2 146
00064 #define RUBY_TOKEN_COLON3 147
00065 #define RUBY_TOKEN(t) RUBY_TOKEN_##t
00066
00067 enum ruby_method_ids {
00068 idDot2 = RUBY_TOKEN(DOT2),
00069 idDot3 = RUBY_TOKEN(DOT3),
00070 idUPlus = RUBY_TOKEN(UPLUS),
00071 idUMinus = RUBY_TOKEN(UMINUS),
00072 idPow = RUBY_TOKEN(POW),
00073 idCmp = RUBY_TOKEN(CMP),
00074 idPLUS = '+',
00075 idMINUS = '-',
00076 idMULT = '*',
00077 idDIV = '/',
00078 idMOD = '%',
00079 idLT = '<',
00080 idLTLT = RUBY_TOKEN(LSHFT),
00081 idLE = RUBY_TOKEN(LEQ),
00082 idGT = '>',
00083 idGE = RUBY_TOKEN(GEQ),
00084 idEq = RUBY_TOKEN(EQ),
00085 idEqq = RUBY_TOKEN(EQQ),
00086 idNeq = RUBY_TOKEN(NEQ),
00087 idNot = '!',
00088 idBackquote = '`',
00089 idEqTilde = RUBY_TOKEN(MATCH),
00090 idNeqTilde = RUBY_TOKEN(NMATCH),
00091 idAREF = RUBY_TOKEN(AREF),
00092 idASET = RUBY_TOKEN(ASET),
00093 tPRESERVED_ID_BEGIN = 147,
00094 idNULL,
00095 idEmptyP,
00096 idEqlP,
00097 idRespond_to,
00098 idRespond_to_missing,
00099 idIFUNC,
00100 idCFUNC,
00101 id_core_set_method_alias,
00102 id_core_set_variable_alias,
00103 id_core_undef_method,
00104 id_core_define_method,
00105 id_core_define_singleton_method,
00106 id_core_set_postexe,
00107 id_core_hash_from_ary,
00108 id_core_hash_merge_ary,
00109 id_core_hash_merge_ptr,
00110 id_core_hash_merge_kwd,
00111 tPRESERVED_ID_END,
00112 tFreeze,
00113 tInspect,
00114 tIntern,
00115 tObject_id,
00116 tConst_missing,
00117 tMethodMissing,
00118 tMethod_added,
00119 tSingleton_method_added,
00120 tMethod_removed,
00121 tSingleton_method_removed,
00122 tMethod_undefined,
00123 tSingleton_method_undefined,
00124 tLength,
00125 tSize,
00126 tGets,
00127 tSucc,
00128 tEach,
00129 tProc,
00130 tLambda,
00131 tSend,
00132 t__send__,
00133 t__attached__,
00134 tInitialize,
00135 tInitialize_copy,
00136 tInitialize_clone,
00137 tInitialize_dup,
00138 tUScore,
00139 #define TOKEN2LOCALID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL)
00140 TOKEN2LOCALID(Freeze),
00141 TOKEN2LOCALID(Inspect),
00142 TOKEN2LOCALID(Intern),
00143 TOKEN2LOCALID(Object_id),
00144 TOKEN2LOCALID(Const_missing),
00145 TOKEN2LOCALID(MethodMissing),
00146 TOKEN2LOCALID(Method_added),
00147 TOKEN2LOCALID(Singleton_method_added),
00148 TOKEN2LOCALID(Method_removed),
00149 TOKEN2LOCALID(Singleton_method_removed),
00150 TOKEN2LOCALID(Method_undefined),
00151 TOKEN2LOCALID(Singleton_method_undefined),
00152 TOKEN2LOCALID(Length),
00153 TOKEN2LOCALID(Size),
00154 TOKEN2LOCALID(Gets),
00155 TOKEN2LOCALID(Succ),
00156 TOKEN2LOCALID(Each),
00157 TOKEN2LOCALID(Proc),
00158 TOKEN2LOCALID(Lambda),
00159 TOKEN2LOCALID(Send),
00160 TOKEN2LOCALID(__send__),
00161 TOKEN2LOCALID(__attached__),
00162 TOKEN2LOCALID(Initialize),
00163 TOKEN2LOCALID(Initialize_copy),
00164 TOKEN2LOCALID(Initialize_clone),
00165 TOKEN2LOCALID(Initialize_dup),
00166 TOKEN2LOCALID(UScore),
00167 tLAST_OP_ID = tPRESERVED_ID_END-1,
00168 idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
00169 };
00170
00171 #endif
00172