summaryrefslogtreecommitdiff
path: root/defs/id.def
diff options
context:
space:
mode:
Diffstat (limited to 'defs/id.def')
-rw-r--r--defs/id.def50
1 files changed, 50 insertions, 0 deletions
diff --git a/defs/id.def b/defs/id.def
new file mode 100644
index 0000000000..0c47bd7804
--- /dev/null
+++ b/defs/id.def
@@ -0,0 +1,50 @@
+# -*- ruby -*-
+predefined = %[\
+ intern
+ method_missing MethodMissing
+ length
+ size
+ gets
+ succ
+ each
+ lambda
+ send
+ __send__
+ initialize
+ initialize_copy
+ initialize_clone
+ initialize_dup
+ _ UScore
+ "/*NULL*/" NULL
+ empty?
+ respond_to? Respond_to
+ respond_to_missing? 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
+]
+
+predefined_ids = {}
+preserved_ids = []
+attr_ids = []
+predefined.each_line do |line|
+ next if /^#/ =~ line or (name, token = line.split; !name)
+ token ||= name
+ if /#/ =~ token
+ token = "_#{token.gsub(/\W+/, '_')}"
+ else
+ token = token.sub(/\?/, 'P').sub(/\A[a-z]/) {$&.upcase}
+ token.gsub!(/\W+/, "")
+ end
+ (/\A(?!\d)\w+\z/ =~ name ? attr_ids : preserved_ids) << token
+ predefined_ids[token] = name
+end