yarv-dev:150
From: Nobuyoshi Nakada <nobu.nokada softhome.net>
Date: Wed, 25 Aug 2004 23:15:59 +0900
Subject: [yarv-dev:150] Re: eval order
なかだです。 At Wed, 25 Aug 2004 18:59:00 +0900, Yukihiro Matsumoto wrote: > | ちなみに,こいつの修正はすぐ終わりますね. > | yarv では左から右にしてみました. > > うーん、じゃあ、どうしようかなあ。 > > | まぁ,こちらはパーサのほうだと思うのでパスします ^^; > > 時間が取れたら見てみます。 それぞれこんなとこでしょうか。 Index: eval.c =================================================================== RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.688 diff -u -2 -p -r1.688 eval.c --- eval.c 19 Aug 2004 07:33:15 -0000 1.688 +++ eval.c 25 Aug 2004 03:30:59 -0000 @@ -3769,4 +3769,6 @@ rb_eval(self, n) rb_raise(rb_eTypeError, "no outer class/module"); } + + cbase = class_prefix(self, node->nd_cpath); if (node->nd_super) { super = superclass(self, node->nd_super); @@ -3775,6 +3777,4 @@ rb_eval(self, n) super = 0; } - - cbase = class_prefix(self, node->nd_cpath); cname = node->nd_cpath->nd_mid; if (rb_const_defined_at(cbase, cname)) { Index: parse.y =================================================================== RCS file: /cvs/ruby/src/ruby/parse.y,v retrieving revision 1.329 diff -u -2 -p -r1.329 parse.y --- parse.y 17 Jul 2004 09:29:21 -0000 1.329 +++ parse.y 25 Aug 2004 13:50:20 -0000 @@ -4147,5 +4147,5 @@ yylex() case '(': command_start = Qtrue; - if (IS_BEG()) { + if (IS_BEG() || lex_state == EXPR_CLASS) { c = tLPAREN; } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦 -- ML: yarv-dev quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
144 2004-08-25 10:42 [ko1 atdot.net ] eval order 145 2004-08-25 12:10 ┗[matz ruby-lang.org ] 148 2004-08-25 13:35 ┗[ko1 atdot.net ] 149 2004-08-25 18:59 ┗[matz ruby-lang.org ] -> 150 2004-08-25 23:15 ┗[nobu.nokada softhome] 151 2004-08-26 11:27 ┗[matz ruby-lang.org ]