ruby/id.h

164 строки
3.9 KiB
C
Исходник Обычный вид История

/* DO NOT EDIT THIS FILE DIRECTLY */
/**********************************************************************
id.h -
$Author: nobu $
created at: Sun Oct 19 21:12:51 2008
Copyright (C) 2007 Koichi Sasada
**********************************************************************/
#ifndef RUBY_ID_H
#define RUBY_ID_H
#define ID_SCOPE_SHIFT 3
#define ID_SCOPE_MASK 0x07
#define ID_LOCAL 0x00
#define ID_INSTANCE 0x01
#define ID_GLOBAL 0x03
#define ID_ATTRSET 0x04
#define ID_CONST 0x05
#define ID_CLASS 0x06
#define ID_JUNK 0x07
#define ID_INTERNAL ID_JUNK
#ifdef USE_PARSE_H
#include "parse.h"
#endif
#define symIFUNC ID2SYM(idIFUNC)
#define symCFUNC ID2SYM(idCFUNC)
#if !defined tLAST_TOKEN && defined YYTOKENTYPE
#define tLAST_TOKEN tLAST_TOKEN
#endif
enum ruby_method_ids {
#ifndef tLAST_TOKEN
tUPLUS = 321,
tUMINUS = 322,
tPOW = 323,
tCMP = 324,
tEQ = 325,
tEQQ = 326,
tNEQ = 327,
tGEQ = 328,
tLEQ = 329,
tANDOP = 330,
tOROP = 331,
tMATCH = 332,
tNMATCH = 333,
tDOT2 = 334,
tDOT3 = 335,
tAREF = 336,
tASET = 337,
tLSHFT = 338,
tRSHFT = 339,
tLAMBDA = 352,
idNULL = 365,
idRespond_to = 366,
idIFUNC = 367,
idCFUNC = 368,
idThrowState = 369,
id_core_set_method_alias = 370,
id_core_set_variable_alias = 371,
id_core_undef_method = 372,
id_core_define_method = 373,
id_core_define_singleton_method = 374,
id_core_set_postexe = 375,
tLAST_TOKEN = 376,
#endif
idPLUS = '+',
idMINUS = '-',
idMULT = '*',
idDIV = '/',
idMOD = '%',
idLT = '<',
idLTLT = tLSHFT,
idLE = tLEQ,
idGT = '>',
idGE = tGEQ,
idEq = tEQ,
idEqq = tEQQ,
idNeq = tNEQ,
idNot = '!',
idBackquote = '`',
idEqTilde = tMATCH,
idAREF = tAREF,
idASET = tASET,
idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
tIntern,
tMethodMissing,
tLength,
tGets,
tSucc,
tEach,
tLambda,
tSend,
t__send__,
tInitialize,
#if SUPPORT_JOKE
tBitblt,
tAnswer,
#endif
tLAST_ID,
#define TOKEN2ID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL)
#if SUPPORT_JOKE
TOKEN2ID(Bitblt),
TOKEN2ID(Answer),
#endif
TOKEN2ID(Intern),
TOKEN2ID(MethodMissing),
TOKEN2ID(Length),
TOKEN2ID(Gets),
TOKEN2ID(Succ),
TOKEN2ID(Each),
TOKEN2ID(Lambda),
TOKEN2ID(Send),
TOKEN2ID(__send__),
TOKEN2ID(Initialize)
};
#ifdef tLAST_TOKEN
struct ruby_method_ids_check {
#define ruby_method_id_check_for(name, value) \
int checking_for_##name[name == value ? 1 : -1]
ruby_method_id_check_for(tUPLUS, 321);
ruby_method_id_check_for(tUMINUS, 322);
ruby_method_id_check_for(tPOW, 323);
ruby_method_id_check_for(tCMP, 324);
ruby_method_id_check_for(tEQ, 325);
ruby_method_id_check_for(tEQQ, 326);
ruby_method_id_check_for(tNEQ, 327);
ruby_method_id_check_for(tGEQ, 328);
ruby_method_id_check_for(tLEQ, 329);
ruby_method_id_check_for(tANDOP, 330);
ruby_method_id_check_for(tOROP, 331);
ruby_method_id_check_for(tMATCH, 332);
ruby_method_id_check_for(tNMATCH, 333);
ruby_method_id_check_for(tDOT2, 334);
ruby_method_id_check_for(tDOT3, 335);
ruby_method_id_check_for(tAREF, 336);
ruby_method_id_check_for(tASET, 337);
ruby_method_id_check_for(tLSHFT, 338);
ruby_method_id_check_for(tRSHFT, 339);
ruby_method_id_check_for(tLAMBDA, 352);
ruby_method_id_check_for(idNULL, 365);
ruby_method_id_check_for(idRespond_to, 366);
ruby_method_id_check_for(idIFUNC, 367);
ruby_method_id_check_for(idCFUNC, 368);
ruby_method_id_check_for(idThrowState, 369);
ruby_method_id_check_for(id_core_set_method_alias, 370);
ruby_method_id_check_for(id_core_set_variable_alias, 371);
ruby_method_id_check_for(id_core_undef_method, 372);
ruby_method_id_check_for(id_core_define_method, 373);
ruby_method_id_check_for(id_core_define_singleton_method, 374);
ruby_method_id_check_for(id_core_set_postexe, 375);
ruby_method_id_check_for(tLAST_TOKEN, 376);
};
#endif
#endif /* RUBY_ID_H */