Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

124 lines (110 sloc) 2.604 kb
%# -*- c -*-
/* DO NOT EDIT THIS FILE DIRECTLY */
/**********************************************************************
id.h -
$Author$
created at: Sun Oct 19 21:12:51 2008
Copyright (C) 2007 Koichi Sasada
**********************************************************************/
<%
require 'optparse'
op_id_offset = 128
method_ids = %w[
Intern
MethodMissing
Length
Size
EmptyP
Gets
Succ
Each
Lambda
Send
__send__
Initialize
UScore
Bitblt
Answer
]
token_op_ids = %w[
tDOT2 tDOT3 tUPLUS tUMINUS tPOW tDSTAR tCMP tLSHFT tRSHFT
tLEQ tGEQ tEQ tEQQ tNEQ tMATCH tNMATCH tAREF tASET
tCOLON2 tCOLON3
]
preserved_ids = %w[
NULL
Respond_to
IFUNC
CFUNC
_core_set_method_alias
_core_set_variable_alias
_core_undef_method
_core_define_method
_core_define_singleton_method
_core_set_postexe
_core_hash_from_ary
_core_hash_merge_ary
_core_hash_merge_ptr
_core_hash_merge_kwd
]
%>
#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
#define symIFUNC ID2SYM(idIFUNC)
#define symCFUNC ID2SYM(idCFUNC)
% token_op_ids.each_with_index do |token, index|
#define RUBY_TOKEN_<%=token[/\At(.+)\z/, 1]%> <%=op_id_offset + index%>
% end
#define RUBY_TOKEN(t) RUBY_TOKEN_##t
enum ruby_method_ids {
idDot2 = RUBY_TOKEN(DOT2),
idDot3 = RUBY_TOKEN(DOT3),
idUPlus = RUBY_TOKEN(UPLUS),
idUMinus = RUBY_TOKEN(UMINUS),
idPow = RUBY_TOKEN(POW),
idCmp = RUBY_TOKEN(CMP),
idPLUS = '+',
idMINUS = '-',
idMULT = '*',
idDIV = '/',
idMOD = '%',
idLT = '<',
idLTLT = RUBY_TOKEN(LSHFT),
idLE = RUBY_TOKEN(LEQ),
idGT = '>',
idGE = RUBY_TOKEN(GEQ),
idEq = RUBY_TOKEN(EQ),
idEqq = RUBY_TOKEN(EQQ),
idNeq = RUBY_TOKEN(NEQ),
idNot = '!',
idBackquote = '`',
idEqTilde = RUBY_TOKEN(MATCH),
idNeqTilde = RUBY_TOKEN(NMATCH),
idAREF = RUBY_TOKEN(AREF),
idASET = RUBY_TOKEN(ASET),
tPRESERVED_ID_BEGIN = <%=op_id_offset + token_op_ids.size - 1%>,
% preserved_ids.each do |token|
id<%=token%>,
% end
tPRESERVED_ID_END,
% method_ids.each do |token|
t<%=token%>,
% end
#define TOKEN2ID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL)
% method_ids.each do |token|
TOKEN2ID(<%=token%>),
% end
tLAST_OP_ID = tPRESERVED_ID_END-1,
idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT
};
#endif /* RUBY_ID_H */
Jump to Line
Something went wrong with that request. Please try again.