diff options
-rw-r--r-- | parse.y | 17 | ||||
-rw-r--r-- | template/id.h.tmpl | 26 |
2 files changed, 26 insertions, 17 deletions
@@ -48,7 +48,7 @@ static ID register_symid_str(ID, VALUE); #include "id.c" #endif -#define is_notop_id(id) ((id)>tLAST_TOKEN) +#define is_notop_id(id) ((id)>tLAST_OP_ID) #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL) #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL) #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE) @@ -800,21 +800,6 @@ static void token_info_pop(struct parser_params*, const char *token); %right tPOW %right '!' '~' tUPLUS -%nonassoc idNULL -%nonassoc idRespond_to -%nonassoc idIFUNC -%nonassoc idCFUNC -%nonassoc id_core_set_method_alias -%nonassoc id_core_set_variable_alias -%nonassoc id_core_undef_method -%nonassoc id_core_define_method -%nonassoc id_core_define_singleton_method -%nonassoc id_core_set_postexe -%nonassoc id_core_hash_from_ary -%nonassoc id_core_hash_merge_ary -%nonassoc id_core_hash_merge_ptr -%nonassoc id_core_hash_merge_kwd - %token tLAST_TOKEN %% diff --git a/template/id.h.tmpl b/template/id.h.tmpl index 9389887acb..15eb25baed 100644 --- a/template/id.h.tmpl +++ b/template/id.h.tmpl @@ -14,6 +14,7 @@ require 'optparse' vpath = ["."] input = nil + opt = OptionParser.new do |o| o.on('-v', '--vpath=DIR') {|dirs| vpath.concat dirs.split(File::PATH_SEPARATOR)} input, = o.order!(ARGV) @@ -48,6 +49,23 @@ method_ids = %w[ Bitblt Answer ] + +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 @@ -105,7 +123,13 @@ enum ruby_method_ids { idNeqTilde = tNMATCH, idAREF = tAREF, idASET = tASET, - idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT, + tPRESERVED_ID_BEGIN = tLAST_TOKEN-1, +% preserved_ids.each do |token| + id<%=token%>, +% end + tPRESERVED_ID_END, + tLAST_OP_ID = tPRESERVED_ID_END-1, + idLAST_OP_ID = tLAST_OP_ID >> ID_SCOPE_SHIFT, % method_ids.each do |token| t<%=token%>, % end |