summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parse.y17
-rw-r--r--template/id.h.tmpl26
2 files changed, 26 insertions, 17 deletions
diff --git a/parse.y b/parse.y
index b5c24228cc..0ec91f8c38 100644
--- a/parse.y
+++ b/parse.y
@@ -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