e$B$J$+$@$G$9!#e(B
e$B%3%^%s%I%i%$%s%*%W%7%g%s$+$i?($l$kFbItJQ?t$r!"%0%m!<%P%k$+$ie(BVMe$B$+e(B
parsere$B$K0\9T$7$?$$$H9M$($F$$$k$N$G$9$,!“e(Byydebuge$B$Oe(Bbisone$B$G@8@.$5$le(B
e$B$k%=!<%9$KKd$a9~$^$l$F$$$k$N$G%3%s%Q%$%i$@$1$G$O$I$&$K$b$J$i$J$$e(B
e$B46$8$G$9!#$=$3$G!“30It%D!<%k$G$A$g$C$HA0=hM}$rF~$l$h$&$+$H;W$&$Ne(B
e$B$G$9$,!”$$$+$,$J$b$s$G$7$g$&$+!#e(Bsede$B<+BN$O!“e(Bdjgppe$B$de(BWindowse$B$G$b$9e(B
e$B$G$K;H$C$F$$$^$9$7!“e(Bautoconfe$B$r;H$&4D6-$J$iEvA3$”$k$O$:$G$9$,!”$3e(B
e$B$&$$$&J}K!$O5$$KF~$i$s$H$+!”$b$C$H$$$$J}K!$,$"$k$H$+!#e(B
Index: Makefile.in
— Makefile.in (revision 13873)
+++ Makefile.in (working copy)
@@ -170,7 +170,4 @@ lex.c: keywords
cp “$(srcdir)/[email protected]” $@
-.y.c:
- $(YACC) $(YFLAGS) -o $@ $<
.c.@OBJEXT@:
$(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -c $<
Index: common.mk
— common.mk (revision 13873)
+++ common.mk (working copy)
@@ -349,4 +349,9 @@ PHONY:
{$(VPATH)}parse.c: parse.y
+{$(VPATH)}.y.c:
- $(YACC) $(YFLAGS) -o y.tab.c $<
- sed -f $(srcdir)/tool/ytab.sed -e “/^#/s!y.tab.c!$@!” y.tab.c > $@
- @$(RM) y.tab.c
acosh.$(OBJEXT): {$(VPATH)}acosh.c
alloca.$(OBJEXT): {$(VPATH)}alloca.c
Index: ruby.c
— ruby.c (revision 13873)
+++ ruby.c (working copy)
@@ -62,5 +62,6 @@ char *getenv();
VALUE ruby_debug = Qfalse;
VALUE ruby_verbose = Qfalse;
-extern int ruby_yydebug;
+VALUE rb_parser_get_yydebug(VALUE);
+VALUE rb_parser_set_yydebug(VALUE, VALUE);
char *ruby_inplace_mode = 0;
@@ -594,5 +595,5 @@ proc_options(int argc, char **argv, stru
case 'y':
-
ruby_yydebug = 1;
-
opt->yydebug = 1; s++; goto reswitch;
@@ -839,5 +840,5 @@ proc_options(int argc, char **argv, stru
}
else if (strcmp(“yydebug”, s) == 0)
- ruby_yydebug = 1;
-
opt->yydebug = 1;
else if (strcmp(“help”, s) == 0) {
usage(origarg.argv[0]);
@@ -994,4 +995,5 @@ process_options(VALUE arg)
ruby_init_gems(opt);
parser = rb_parser_new(); -
if (opt->yydebug) rb_parser_set_yydebug(parser, Qtrue);
if (opt->e_script) {
if (opt->enc_index >= 0)
Index: parse.y
===================================================================
— parse.y (revision 13873)
+++ parse.y (working copy)
@@ -241,4 +241,6 @@ struct parser_params {
rb_encoding *utf8; -
int parser_yydebug;
#ifndef RIPPER
/* Ruby core only */
@@ -283,7 +285,5 @@ static int parser_yyerror(struct parser_
#define yyerror(msg) parser_yyerror(parser, msg)
-#define YYPARSE_PARAM parser_v
-#define YYLEX_PARAM parser_v
-#define parser ((struct parser_params*)parser_v)
+#define YYLEX_PARAM parser
#define ruby_eval_tree (parser->parser_eval_tree)
@@ -318,4 +318,5 @@ static int parser_yyerror(struct parser_
#define ruby_sourceline (parser->parser_ruby_sourceline)
#define ruby_sourcefile (parser->parser_ruby_sourcefile)
+#define yydebug (parser->parser_yydebug)
#ifdef RIPPER
#else
@@ -327,5 +328,4 @@ static int yylex(void*, void*);
#ifndef RIPPER
#define yyparse ruby_yyparse
-#define yydebug ruby_yydebug
static NODE* node_newnode(struct parser_params *, enum node_type,
VALUE, VALUE, VALUE);
@@ -490,5 +490,4 @@ static VALUE ripper_dispatch5(struct par
#define yyparse ripper_yyparse
-#define yydebug ripper_yydebug
static VALUE ripper_intern(const char*);
@@ -588,4 +587,5 @@ static void ripper_compile_error(struct
%pure_parser
+%parse-param {struct parser_params *parser}
%union {
@@ -9142,4 +9142,7 @@ parser_free(void *ptr)
}
+VALUE rb_parser_get_yydebug(VALUE);
+VALUE rb_parser_set_yydebug(VALUE, VALUE);
+
#ifndef RIPPER
static struct parser_params *
@@ -9193,4 +9196,35 @@ rb_parser_encoding(VALUE vparser)
}
+/*
-
- call-seq:
-
- ripper.yydebug -> true or false
-
-
- Get yydebug.
- */
+VALUE
+rb_parser_get_yydebug(VALUE self)
+{ - struct parser_params *parser;
- Data_Get_Struct(self, struct parser_params, parser);
- return yydebug ? Qtrue : Qfalse;
+}
+/*
-
- call-seq:
-
- ripper.yydebug = flag
-
-
- Set yydebug.
- */
+VALUE
+rb_parser_set_yydebug(VALUE self, VALUE flag)
+{ - struct parser_params *parser;
- Data_Get_Struct(self, struct parser_params, parser);
- yydebug = RTEST(flag);
- return flag;
+}
#ifdef YYMALLOC
#define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
@@ -9555,29 +9589,4 @@ ripper_initialize(int argc, VALUE *argv,
}
-/*
-
- call-seq:
-
- Ripper.yydebug -> true or false
-
-
- Get yydebug.
- */
-static VALUE
-ripper_s_get_yydebug(VALUE self)
-{ - return ripper_yydebug ? Qtrue : Qfalse;
-}
-/*
-
- call-seq:
-
- Ripper.yydebug = flag
-
-
- Set yydebug.
- */
-static VALUE
-ripper_s_set_yydebug(VALUE self, VALUE flag)
-{ - ripper_yydebug = RTEST(flag);
- return flag;
-}
extern VALUE rb_thread_pass(void);
@@ -9705,6 +9714,4 @@ Init_ripper(void)
Ripper = rb_define_class(“Ripper”, rb_cObject);
rb_define_const(Ripper, “Version”, rb_str_new2(RIPPER_VERSION));
- rb_define_singleton_method(Ripper, “yydebug”, ripper_s_get_yydebug,
0); - rb_define_singleton_method(Ripper, “yydebug=”,
ripper_s_set_yydebug, 1);
rb_define_alloc_func(Ripper, ripper_s_allocate);
rb_define_method(Ripper, “initialize”, ripper_initialize, -1);
@@ -9714,4 +9721,6 @@ Init_ripper(void)
rb_define_method(Ripper, “end_seen?”, rb_parser_end_seen_p, 0);
rb_define_method(Ripper, “encoding”, rb_parser_encoding, 0);
- rb_define_method(Ripper, “yydebug”, rb_parser_get_yydebug, 0);
- rb_define_method(Ripper, “yydebug=”, rb_parser_set_yydebug, 1);
#ifdef RIPPER_DEBUG
rb_define_method(rb_mKernel, “assert_Qundef”, ripper_assert_Qundef,
2);
Index: bcc32/Makefile.sub
===================================================================
— bcc32/Makefile.sub (revision 13873)
+++ bcc32/Makefile.sub (working copy)
@@ -210,9 +210,4 @@ VPATH = $(arch_hdrdir)/ruby;$(hdrdir)/ru
$(RC) $(RFLAGS) -I. -I$(<D). $(iconinc) -I$(srcdir)/win32 $(RFLAGS)
-fo$@ $(<:/=)
-.y.c:
- $(YACC) $(YFLAGS) $(<:=/)
- sed -e “s!^ extern char *getenv();!/ &
/!;s/^(#.)y.tab/\1parse/” y.tab.c > $(@F) - @del y.tab.c
all: $(srcdir)/bcc32/Makefile.sub $(srcdir)/common.mk
Index: win32/Makefile.sub
— win32/Makefile.sub (revision 13873)
+++ win32/Makefile.sub (working copy)
@@ -579,9 +579,4 @@ lex.c: {$(srcdir)}lex.c.blt
copy $(?:/=) $@
-{$(srcdir)}.y.c:
- $(YACC) $(YFLAGS) $(<:=/)
- sed -e “s!^ extern char *getenv();!/ &
/!;s/^(#.)y.tab/\1parse/” y.tab.c > $@ - @del y.tab.c
$(OBJS): {$(hdrdir)/ruby}win32.h
Index: wince/Makefile.sub
— wince/Makefile.sub (revision 13873)
+++ wince/Makefile.sub (working copy)
@@ -531,9 +531,4 @@ lex.c: {$(srcdir)}lex.c.blt
copy $(?:/=) $@
-{$(srcdir)}.y.c:
- $(YACC) $(YFLAGS) $(<:=/)
- sed -e “s!^ extern char *getenv();!/ &
/!;s/^(#.)y.tab/\1parse/” y.tab.c > $@ - @del y.tab.c
!include $(srcdir)/common.mk
Index: tool/ytab.sed
— tool/ytab.sed (revision 0)
+++ tool/ytab.sed (revision 0)
@@ -0,0 +1,10 @@
+#!/bin/sed -f
+/^int yydebug;/{
+i
+#ifndef yydebug
+a
+#endif
+}
+s/<(yyerror[ ]*([ ]parser,)/parser_\1/
+s!^ extern char *getenv();!/ & /!
+s/^(#.)"..tab.c"/\1"parse.c"/
Property changes on: tool/ytab.sed