[前][次][番号順一覧][スレッド一覧]

ruby-changes:8294

From: nobu <ko1@a...>
Date: Fri, 17 Oct 2008 19:46:49 +0900 (JST)
Subject: [ruby-changes:8294] Ruby:r19822 (trunk): * common.mk (ID_H_TARGET): phony target to update id.h.

nobu	2008-10-17 19:46:23 +0900 (Fri, 17 Oct 2008)

  New Revision: 19822

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19822

  Log:
    * common.mk (ID_H_TARGET): phony target to update id.h.
    
    * tool/ifchange, win32/ifchange.bat: --timestamp option added.
    
    * tool/generic_erb.rb: --timestamp, --output and --if-change options
      added.
    
    * template/id.h.tmpl: moved from id.h.

  Added files:
    trunk/template/id.h.tmpl
  Removed files:
    trunk/id.h
  Modified files:
    trunk/ChangeLog
    trunk/common.mk
    trunk/cygwin/GNUmakefile.in
    trunk/parse.y
    trunk/tool/generic_erb.rb
    trunk/tool/ifchange
    trunk/win32/ifchange.bat

Index: id.h
===================================================================
--- id.h	(revision 19821)
+++ id.h	(revision 19822)
@@ -1,83 +0,0 @@
-/**********************************************************************
-
-  id.h - 
-
-  $Author: ko1 $
-  created at: Thu Jul 12 04:38:07 2007
-
-  Copyright (C) 2007 Koichi Sasada
-
-**********************************************************************/
-
-#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
-
-#include "parse.h"
-
-#define symIFUNC ID2SYM(idIFUNC)
-#define symCFUNC ID2SYM(idCFUNC)
-
-enum ruby_method_ids {
-    idPLUS = '+',
-    idMINUS = '-',
-    idMULT = '*',
-    idDIV = '/',
-    idMOD = '%',
-    idLT = '<',
-    idLTLT = tLSHFT,
-    idLE = tLEQ,
-    idGT = '>',
-    idGE = tGEQ,
-    idEq = tEQ,
-    idEqq = tEQQ,
-    idNeq = tNEQ,
-    idNot = '!',
-    idBackquote = '`',
-    idEqTilde = tMATCH,
-    idAREF = tAREF,
-    idASET = tASET,
-    idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
-    tIntern,
-    tMethodMissing,
-    tLength,
-    tGets,
-    tSucc,
-    tEach,
-    tLambda,
-    tSend,
-    t__send__,
-    tInitialize,
-#if SUPPORT_JOKE
-    tBitblt,
-    tAnswer,
-#endif
-    tLAST_ID
-};
-
-#define idIntern ((tIntern<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idMethodMissing ((tMethodMissing<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idLength ((tLength<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idGets ((tGets<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idSucc ((tSucc<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idEach ((tEach<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idLambda ((tLambda<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idSend ((tSend<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define id__send__ ((t__send__<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idInitialize ((tInitialize<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#if SUPPORT_JOKE
-#define idBitblt ((tBitblt<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#define idAnswer ((tAnswer<<ID_SCOPE_SHIFT)|ID_LOCAL)
-#endif
-
-#endif /* RUBY_ID_H */
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 19821)
+++ ChangeLog	(revision 19822)
@@ -1,3 +1,14 @@
+Fri Oct 17 19:46:20 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* common.mk (ID_H_TARGET): phony target to update id.h.
+
+	* tool/ifchange, win32/ifchange.bat: --timestamp option added.
+
+	* tool/generic_erb.rb: --timestamp, --output and --if-change options
+	  added.
+
+	* template/id.h.tmpl: moved from id.h.
+
 Fri Oct 17 18:33:12 2008  Yuki Sonoda (Yugui)  <yugui@y...>
 
 	* array.c (ary_resize_capa): renamed RESIZE_CAPA.
Index: common.mk
===================================================================
--- common.mk	(revision 19821)
+++ common.mk	(revision 19822)
@@ -17,6 +17,7 @@
 RBCONFIG      = ./.rbconfig.time
 LIBRUBY_EXTS  = ./.libruby-with-ext.time
 RDOCOUT       = $(EXTOUT)/rdoc
+ID_H_TARGET   = -id.h-
 
 DMYEXT	      = dmyext.$(OBJEXT)
 NORMALMAINOBJ = main.$(OBJEXT)
@@ -441,7 +442,7 @@
 RUBY_H_INCLUDES    = {$(VPATH)}ruby.h {$(VPATH)}config.h {$(VPATH)}defines.h \
 		     {$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}st.h
 ENCODING_H_INCLUDES= {$(VPATH)}encoding.h {$(VPATH)}oniguruma.h
-ID_H_INCLUDES      = {$(VPATH)}id.h {$(VPATH)}parse.h
+ID_H_INCLUDES      = {$(VPATH)}id.h
 VM_CORE_H_INCLUDES = {$(VPATH)}vm_core.h {$(VPATH)}vm_opts.h \
 	             {$(VPATH)}vm.h {$(VPATH)}thread_$(THREAD_MODEL).h \
 		     {$(VPATH)}node.h $(ID_H_INCLUDES)
@@ -465,20 +466,20 @@
   {$(VPATH)}util.h
 enumerator.$(OBJEXT): {$(VPATH)}enumerator.c $(RUBY_H_INCLUDES)
 error.$(OBJEXT): {$(VPATH)}error.c {$(VPATH)}known_errors.inc $(RUBY_H_INCLUDES) \
-  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}parse.y
+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 eval.$(OBJEXT): {$(VPATH)}eval.c {$(VPATH)}eval_intern.h \
   $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_error.c \
-  {$(VPATH)}eval_jump.c {$(VPATH)}debug.h {$(VPATH)}parse.y \
+  {$(VPATH)}eval_jump.c {$(VPATH)}debug.h \
   {$(VPATH)}iseq.h
 load.$(OBJEXT): {$(VPATH)}load.c {$(VPATH)}eval_intern.h \
   {$(VPATH)}util.h $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) \
-  {$(VPATH)}dln.h {$(VPATH)}debug.h {$(VPATH)}parse.y
+  {$(VPATH)}dln.h {$(VPATH)}debug.h
 file.$(OBJEXT): {$(VPATH)}file.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \
   $(ENCODING_H_INCLUDES) {$(VPATH)}util.h {$(VPATH)}dln.h
 gc.$(OBJEXT): {$(VPATH)}gc.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \
   {$(VPATH)}regex.h $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) \
   {$(VPATH)}gc.h {$(VPATH)}io.h {$(VPATH)}eval_intern.h {$(VPATH)}util.h \
-  {$(VPATH)}debug.h {$(VPATH)}parse.y
+  {$(VPATH)}debug.h
 hash.$(OBJEXT): {$(VPATH)}hash.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h
 inits.$(OBJEXT): {$(VPATH)}inits.c $(RUBY_H_INCLUDES)
 io.$(OBJEXT): {$(VPATH)}io.c $(RUBY_H_INCLUDES) {$(VPATH)}io.h \
@@ -492,16 +493,16 @@
   $(ENCODING_H_INCLUDES)
 object.$(OBJEXT): {$(VPATH)}object.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h
 pack.$(OBJEXT): {$(VPATH)}pack.c $(RUBY_H_INCLUDES)
-parse.$(OBJEXT): {$(VPATH)}parse.c {$(VPATH)}parse.y $(RUBY_H_INCLUDES) \
+parse.$(OBJEXT): {$(VPATH)}parse.c $(RUBY_H_INCLUDES) \
   {$(VPATH)}node.h $(ENCODING_H_INCLUDES) $(ID_H_INCLUDES) \
   {$(VPATH)}regenc.h {$(VPATH)}regex.h {$(VPATH)}util.h {$(VPATH)}lex.c \
   {$(VPATH)}keywords {$(VPATH)}id.c
 proc.$(OBJEXT): {$(VPATH)}proc.c {$(VPATH)}eval_intern.h \
   $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \
-  {$(VPATH)}debug.h {$(VPATH)}parse.y
+  {$(VPATH)}debug.h
 process.$(OBJEXT): {$(VPATH)}process.c $(RUBY_H_INCLUDES) \
   {$(VPATH)}util.h {$(VPATH)}io.h $(ENCODING_H_INCLUDES) {$(VPATH)}dln.h \
-  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}parse.y
+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 random.$(OBJEXT): {$(VPATH)}random.c $(RUBY_H_INCLUDES)
 range.$(OBJEXT): {$(VPATH)}range.c $(RUBY_H_INCLUDES) \
   $(ENCODING_H_INCLUDES)
@@ -525,11 +526,11 @@
   {$(VPATH)}regenc.h {$(VPATH)}oniguruma.h $(RUBY_H_INCLUDES)
 ruby.$(OBJEXT): {$(VPATH)}ruby.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h \
   $(ENCODING_H_INCLUDES) {$(VPATH)}eval_intern.h $(VM_CORE_H_INCLUDES) \
-  {$(VPATH)}dln.h {$(VPATH)}debug.h {$(VPATH)}parse.y
+  {$(VPATH)}dln.h {$(VPATH)}debug.h
 safe.$(OBJEXT): {$(VPATH)}safe.c $(RUBY_H_INCLUDES) \
-  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}parse.y
+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 signal.$(OBJEXT): {$(VPATH)}signal.c $(RUBY_H_INCLUDES) \
-  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}parse.y
+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 sprintf.$(OBJEXT): {$(VPATH)}sprintf.c $(RUBY_H_INCLUDES) {$(VPATH)}re.h \
   {$(VPATH)}regex.h {$(VPATH)}vsnprintf.c $(ENCODING_H_INCLUDES)
 st.$(OBJEXT): {$(VPATH)}st.c {$(VPATH)}config.h {$(VPATH)}defines.h \
@@ -542,12 +543,12 @@
 struct.$(OBJEXT): {$(VPATH)}struct.c $(RUBY_H_INCLUDES)
 thread.$(OBJEXT): {$(VPATH)}thread.c {$(VPATH)}eval_intern.h \
   $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \
-  {$(VPATH)}debug.h {$(VPATH)}parse.y {$(VPATH)}thread_$(THREAD_MODEL).c
+  {$(VPATH)}debug.h {$(VPATH)}thread_$(THREAD_MODEL).c
 transcode.$(OBJEXT): {$(VPATH)}transcode.c $(RUBY_H_INCLUDES) \
   $(ENCODING_H_INCLUDES) {$(VPATH)}transcode_data.h
 cont.$(OBJEXT): {$(VPATH)}cont.c $(RUBY_H_INCLUDES) \
   $(VM_CORE_H_INCLUDES) {$(VPATH)}gc.h {$(VPATH)}eval_intern.h \
-  {$(VPATH)}debug.h {$(VPATH)}parse.y
+  {$(VPATH)}debug.h
 time.$(OBJEXT): {$(VPATH)}time.c $(RUBY_H_INCLUDES) \
   $(ENCODING_H_INCLUDES)
 util.$(OBJEXT): {$(VPATH)}util.c $(RUBY_H_INCLUDES) {$(VPATH)}util.h
@@ -558,30 +559,28 @@
 
 compile.$(OBJEXT): {$(VPATH)}compile.c {$(VPATH)}iseq.h \
   $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \
-  {$(VPATH)}insns_info.inc {$(VPATH)}optinsn.inc {$(VPATH)}debug.h \
-  {$(VPATH)}parse.y
+  {$(VPATH)}insns_info.inc {$(VPATH)}optinsn.inc {$(VPATH)}debug.h
 iseq.$(OBJEXT): {$(VPATH)}iseq.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \
   $(RUBY_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}insns.inc \
-  {$(VPATH)}insns_info.inc {$(VPATH)}node_name.inc {$(VPATH)}debug.h \
-  {$(VPATH)}parse.y
+  {$(VPATH)}insns_info.inc {$(VPATH)}node_name.inc {$(VPATH)}debug.h
 vm.$(OBJEXT): {$(VPATH)}vm.c {$(VPATH)}gc.h {$(VPATH)}iseq.h \
   {$(VPATH)}eval_intern.h $(RUBY_H_INCLUDES) $(ENCODING_H_INCLUDES) \
   $(VM_CORE_H_INCLUDES) {$(VPATH)}vm_method.c {$(VPATH)}vm_eval.c \
   {$(VPATH)}vm_insnhelper.c {$(VPATH)}vm_insnhelper.h {$(VPATH)}vm_exec.c \
   {$(VPATH)}vm_exec.h {$(VPATH)}insns.def {$(VPATH)}vmtc.inc \
-  {$(VPATH)}vm.inc {$(VPATH)}insns.inc {$(VPATH)}debug.h {$(VPATH)}parse.y
+  {$(VPATH)}vm.inc {$(VPATH)}insns.inc {$(VPATH)}debug.h
 vm_dump.$(OBJEXT): {$(VPATH)}vm_dump.c $(RUBY_H_INCLUDES) \
-  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}parse.y
+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 debug.$(OBJEXT): {$(VPATH)}debug.c $(RUBY_H_INCLUDES) \
   $(ENCODING_H_INCLUDES) $(VM_CORE_H_INCLUDES) {$(VPATH)}eval_intern.h \
-  {$(VPATH)}util.h {$(VPATH)}debug.h {$(VPATH)}parse.y
+  {$(VPATH)}util.h {$(VPATH)}debug.h
 id.$(OBJEXT): {$(VPATH)}id.c $(RUBY_H_INCLUDES) $(ID_H_INCLUDES)
 miniprelude.$(OBJEXT): {$(VPATH)}miniprelude.c $(RUBY_H_INCLUDES) \
-  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}parse.y
+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 prelude.$(OBJEXT): {$(VPATH)}prelude.c $(RUBY_H_INCLUDES) \
-  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}parse.y
+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 golf_prelude.$(OBJEXT): {$(VPATH)}golf_prelude.c $(RUBY_H_INCLUDES) \
-  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h {$(VPATH)}parse.y
+  $(VM_CORE_H_INCLUDES) {$(VPATH)}debug.h
 goruby.$(OBJEXT): {$(VPATH)}goruby.c {$(VPATH)}main.c $(RUBY_H_INCLUDES) \
   {$(VPATH)}debug.h {$(VPATH)}node.h
 
@@ -626,7 +625,7 @@
 
 vm.inc: $(srcdir)/template/vm.inc.tmpl
 
-srcs: {$(VPATH)}parse.c {$(VPATH)}lex.c {$(VPATH)}newline.c $(srcdir)/ext/ripper/ripper.c srcs-enc
+srcs: {$(VPATH)}parse.c $(ID_H_TARGET) {$(VPATH)}lex.c {$(VPATH)}newline.c $(srcdir)/ext/ripper/ripper.c srcs-enc
 
 srcs-enc: $(ENC_MK)
 	$(MAKE) -f $(ENC_MK) RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(MFLAGS) srcs
@@ -646,6 +645,12 @@
 	$(MINIRUBY) $(srcdir)/enc/trans/make_transdb.rb $@.new $(srcdir)/enc/trans enc/trans
 	$(IFCHANGE) "$@" "$@.new"
 
+{$(VPATH)}id.h:
+	$(CPP) $(CPPFLAGS) -DUSE_PARSE_H $@
+
+$(ID_H_TARGET): {$(VPATH)}parse.c $(srcdir)/tool/generic_erb.rb $(srcdir)/template/id.h.tmpl
+	$(BASERUBY) $(srcdir)/tool/generic_erb.rb --if-change --output=$(srcdir)/id.h $(srcdir)/template/id.h.tmpl --vpath=$(VPATH) parse.c
+
 known_errors.inc: $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def
 	$(BASERUBY) $(srcdir)/tool/generic_erb.rb $(srcdir)/template/known_errors.inc.tmpl $(srcdir)/defs/known_errors.def > $@
 
Index: cygwin/GNUmakefile.in
===================================================================
--- cygwin/GNUmakefile.in	(revision 19821)
+++ cygwin/GNUmakefile.in	(revision 19822)
@@ -9,7 +9,7 @@
 else
   DLL_BASE_NAME := $(RUBY_SO_NAME)
   DLLWRAP += -mno-cygwin
-  VPATH += $(srcdir)/win32
+  VPATH := $(VPATH):$(srcdir)/win32
 endif
 
 ifneq ($(ENABLE_SHARED),yes)
Index: win32/ifchange.bat
===================================================================
--- win32/ifchange.bat	(revision 19821)
+++ win32/ifchange.bat	(revision 19822)
@@ -3,6 +3,11 @@
 
 if "%1" == "" goto :end
 
+set timestamp=
+if "%1" == "--timestamp" (
+    set timestamp=yes
+    shift
+)
 set dest=%1
 set src=%2
 set dest=%dest:/=\%
@@ -47,13 +52,18 @@
 if not exist %src% goto :end
 if exist %dest% (
     fc.exe %dest% %src% > nul && (
-	echo %dest% unchanged.
+	echo %1 unchanged.
 	del %src%
-	goto :end
+	goto :nt_end
     )
 )
-echo %dest% updated.
+echo %1 updated.
 copy %src% %dest% > nul
 del %src%
 
+:nt_end
+if "%timestamp%" == "" goto :end
+    for %%I in ("%dest%") do set timestamp=%%~dpI\.time.%%~nxI
+    if not exist "%timestamp%" copy nul "%timestamp%" > nul
+    goto :end >> "%timestamp%"
 :end
Index: parse.y
===================================================================
--- parse.y	(revision 19821)
+++ parse.y	(revision 19822)
@@ -19,6 +19,7 @@
 #include "ruby/st.h"
 #include "ruby/encoding.h"
 #include "node.h"
+#include "parse.h"
 #include "id.h"
 #include "regenc.h"
 #include <stdio.h>
Index: tool/ifchange
===================================================================
--- tool/ifchange	(revision 19821)
+++ tool/ifchange	(revision 19822)
@@ -1,6 +1,11 @@
 #!/bin/sh
 # usage: ifchange target temporary
 
+unset timestamp
+if [ "$1" = --timestamp ]; then
+    timestamp=yes
+    shift
+fi
 target="$1"
 temp="$2"
 if [ "$temp" = - ]; then
@@ -15,3 +20,6 @@
     echo "$target updated"
     mv -f "$temp" "$target"
 fi
+if [ $timestamp ]; then
+    touch `dirname "$target"`/.time.`basename "$target"`
+fi
Index: tool/generic_erb.rb
===================================================================
--- tool/generic_erb.rb	(revision 19821)
+++ tool/generic_erb.rb	(revision 19822)
@@ -1,4 +1,34 @@
 require 'erb'
+require 'optparse'
+require 'fileutils'
 
+timestamp = nil
+output = nil
+ifchange = nil
+opt = OptionParser.new do |o|
+  o.on('-t', '--timestamp[=PATH]') {|v| timestamp = v || true}
+  o.on('-o', '--output=PATH') {|v| output = v}
+  o.on('-c', '--[no-]if-change') {|v| ifchange = v}
+  o.order!(ARGV)
+end or abort opt.opt_s
 template = ARGV.shift
-ERB.new(File.read(template), nil, '%').run
+erb = ERB.new(File.read(template), nil, '%')
+erb.filename = template
+result = erb.result
+if output
+  if ifchange
+    if (IO.read(output) rescue nil) == result
+      puts "#{output} unchanged"
+    else
+      open(output, "wb") {|f| f.print result}
+      puts "#{output} updated"
+    end
+  end
+  if timestamp
+    if timestamp == true
+      dir, base = File.split(output)
+      timestamp = File.join(dir, ".time." + base)
+    end
+    FileUtils.touch(timestamp)
+  end
+end
Index: template/id.h.tmpl
===================================================================
--- template/id.h.tmpl	(revision 0)
+++ template/id.h.tmpl	(revision 19822)
@@ -0,0 +1,115 @@
+%#  -*- c -*-
+/* DO NOT EDIT THIS FILE DIRECTLY */
+/**********************************************************************
+
+  id.h - 
+
+  $Author: ko1 $
+  created at: Thu Jul 12 04:38:07 2007
+
+  Copyright (C) 2007 Koichi Sasada
+
+**********************************************************************/
+<%
+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)
+end or abort opt.opt_s
+
+tokens = nil
+vpath.find do |dir|
+  begin
+    if line = File.read(File.join(dir, input))[/^\s*enum\s+yytokentype\s*\{([^{}]*)\s*\};/m, 1]
+      tokens = line.scan(/\b(t(?:LAST_TOKEN|U(?:PLUS|MINUS)|POW|CMP|EQQ?|[NGL]EQ|(?:AND|OR)OP|N?MATCH|DOT\d|AREF|ASET|[LR]SHFT|LAMBDA)|id\w+)\s*=\s*(\d+),?/m)
+    end
+  rescue Errno::ENOENT
+    nil
+  else
+    true
+  end
+end
+%>
+#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
+
+#ifdef USE_PARSE_H
+#include "parse.h"
+#endif
+
+#define symIFUNC ID2SYM(idIFUNC)
+#define symCFUNC ID2SYM(idCFUNC)
+
+enum ruby_method_ids {
+#ifndef tLAST_TOKEN
+% tokens.each do |token, value|
+    <%=token%> = <%=value%>,
+% end
+#elif <%= tokens.map {|token, value|"#{token} != #{value}"}.join(" || \\\n    ") %>
+#error id.h is out of date.
+#endif
+    idPLUS = '+',
+    idMINUS = '-',
+    idMULT = '*',
+    idDIV = '/',
+    idMOD = '%',
+    idLT = '<',
+    idLTLT = tLSHFT,
+    idLE = tLEQ,
+    idGT = '>',
+    idGE = tGEQ,
+    idEq = tEQ,
+    idEqq = tEQQ,
+    idNeq = tNEQ,
+    idNot = '!',
+    idBackquote = '`',
+    idEqTilde = tMATCH,
+    idAREF = tAREF,
+    idASET = tASET,
+    idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
+    tIntern,
+    tMethodMissing,
+    tLength,
+    tGets,
+    tSucc,
+    tEach,
+    tLambda,
+    tSend,
+    t__send__,
+    tInitialize,
+#if SUPPORT_JOKE
+    tBitblt,
+    tAnswer,
+#endif
+    tLAST_ID,
+#define TOKEN2ID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL)
+    TOKEN2ID(Intern),
+    TOKEN2ID(MethodMissing),
+    TOKEN2ID(Length),
+    TOKEN2ID(Gets),
+    TOKEN2ID(Succ),
+    TOKEN2ID(Each),
+    TOKEN2ID(Lambda),
+    TOKEN2ID(Send),
+    TOKEN2ID(__send__),
+    TOKEN2ID(Initialize),
+#if SUPPORT_JOKE
+    TOKEN2ID(Bitblt),
+    TOKEN2ID(Answer),
+#endif
+};
+
+#endif /* RUBY_ID_H */

Property changes on: template/id.h.tmpl
___________________________________________________________________
Name: svn:eol-style
   + LF


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]