mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* template/id.h.tmpl (preserved_ids): "empty?" is not an attribute name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			127 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
%#  -*- 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
 | 
						|
 | 
						|
attr_ids = %w[
 | 
						|
  Intern
 | 
						|
  MethodMissing
 | 
						|
  Length
 | 
						|
  Size
 | 
						|
  Gets
 | 
						|
  Succ
 | 
						|
  Each
 | 
						|
  Lambda
 | 
						|
  Send
 | 
						|
  __send__
 | 
						|
  Initialize
 | 
						|
  Initialize_copy
 | 
						|
  Initialize_clone
 | 
						|
  Initialize_dup
 | 
						|
  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
 | 
						|
  EmptyP
 | 
						|
  Respond_to
 | 
						|
  Respond_to_missing
 | 
						|
  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,
 | 
						|
% attr_ids.each do |token|
 | 
						|
    t<%=token%>,
 | 
						|
% end
 | 
						|
#define TOKEN2ID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL)
 | 
						|
% attr_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 */
 |