summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--common.mk6
-rw-r--r--id.c21
-rw-r--r--id.h42
4 files changed, 35 insertions, 40 deletions
diff --git a/ChangeLog b/ChangeLog
index dbe667873c..68baa0bc71 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Wed Aug 13 14:00:19 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * 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@atdot.net>
* vm.c: rewind cfp to show proper backtrace.
diff --git a/common.mk b/common.mk
index 8f5e266cef..5efe44e46e 100644
--- a/common.mk
+++ b/common.mk
@@ -392,10 +392,12 @@ PHONY:
{$(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
diff --git a/id.c b/id.c
index a02504d809..5166309402 100644
--- a/id.c
+++ b/id.c
@@ -11,6 +11,7 @@
#include "ruby/ruby.h"
+#define YYSTYPE_IS_DECLARED
#define extern
#include "id.h"
#undef extern
@@ -25,26 +26,6 @@ Init_id(void)
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");
diff --git a/id.h b/id.h
index 977dcf57a3..ece5ae0d00 100644
--- a/id.h
+++ b/id.h
@@ -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;