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

ruby-changes:7037

From: nobu <ko1@a...>
Date: Wed, 13 Aug 2008 14:00:44 +0900 (JST)
Subject: [ruby-changes:7037] Ruby:r18555 (trunk): * common.mk (parse.c): generates parse.h together.

nobu	2008-08-13 14:00:26 +0900 (Wed, 13 Aug 2008)

  New Revision: 18555

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

  Log:
    * common.mk (parse.c): generates parse.h together.
    
    * id.c, id.h: use constants for parser tokens.

  Modified files:
    trunk/ChangeLog
    trunk/common.mk
    trunk/id.c
    trunk/id.h

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18554)
+++ ChangeLog	(revision 18555)
@@ -1,3 +1,9 @@
+Wed Aug 13 14:00:19 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* common.mk (parse.c): generates parse.h together.
+
+	* id.c, id.h: use constants for parser tokens.
+
 Wed Aug 13 13:47:05 2008  Koichi Sasada  <ko1@a...>
 
 	* vm.c: rewind cfp to show proper backtrace.
Index: common.mk
===================================================================
--- common.mk	(revision 18554)
+++ common.mk	(revision 18555)
@@ -392,10 +392,12 @@
 {$(VPATH)}parse.c: {$(VPATH)}parse.y $(srcdir)/tool/ytab.sed
 
 {$(srcdir)}.y.c:
-	$(YACC) $(YFLAGS) -o y.tab.c $<
+	$(YACC) -d $(YFLAGS) -o y.tab.c $<
 	sed -f $(srcdir)/tool/ytab.sed -e "/^#/s!y\.tab\.c!$@!" y.tab.c > $@.new
-	@$(RM) $@ y.tab.c
 	@$(MV) $@.new $@
+	sed -e "/^#/s!y\.tab\.h!$(@:.c=.h)!" y.tab.h > $(@:.c=.h).new
+	@$(MV) $(@:.c=.h).new $(@:.c=.h)
+	@$(RM) y.tab.c y.tab.h
 
 acosh.$(OBJEXT): {$(VPATH)}acosh.c
 alloca.$(OBJEXT): {$(VPATH)}alloca.c {$(VPATH)}config.h
Index: id.c
===================================================================
--- id.c	(revision 18554)
+++ id.c	(revision 18555)
@@ -11,6 +11,7 @@
 
 #include "ruby/ruby.h"
 
+#define YYSTYPE_IS_DECLARED
 #define extern
 #include "id.h"
 #undef extern
@@ -25,26 +26,6 @@
     symCFUNC = ID2SYM(rb_intern("<CFUNC>"));
 
     /* IDs */
-    idPLUS = rb_intern("+");
-    idMINUS = rb_intern("-");
-    idMULT = rb_intern("*");
-    idDIV = rb_intern("/");
-    idMOD = rb_intern("%");
-    idLT = rb_intern("<");
-    idLTLT = rb_intern("<<");
-    idLE = rb_intern("<=");
-    idGT = rb_intern(">");
-    idGE = rb_intern(">=");
-    idEq = rb_intern("==");
-    idEqq = rb_intern("===");
-    idBackquote = rb_intern("`");
-    idEqTilde = rb_intern("=~");
-    idNot = rb_intern("!");
-    idNeq = rb_intern("!=");
-
-    idAREF = rb_intern("[]");
-    idASET = rb_intern("[]=");
-
     idEach = rb_intern("each");
     idTimes = rb_intern("times");
     idLength = rb_intern("length");
Index: id.h
===================================================================
--- id.h	(revision 18554)
+++ id.h	(revision 18555)
@@ -12,28 +12,34 @@
 #ifndef RUBY_ID_H
 #define RUBY_ID_H
 
+#include "parse.h"
+
 extern VALUE symIFUNC;
 extern VALUE symCFUNC;
 
-extern ID idPLUS;
-extern ID idMINUS;
-extern ID idMULT;
-extern ID idDIV;
-extern ID idMOD;
-extern ID idLT;
-extern ID idLTLT;
-extern ID idLE;
-extern ID idGT;
-extern ID idGE;
-extern ID idEq;
-extern ID idEqq;
-extern ID idNeq;
-extern ID idNot;
-extern ID idBackquote;
-extern ID idEqTilde;
+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,
+    idDummy
+};
+
 extern ID idThrowState;
-extern ID idAREF;
-extern ID idASET;
 extern ID idIntern;
 extern ID idMethodMissing;
 extern ID idLength;

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

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