[#9445] thread.rb — m_seki@...

18 messages 2000/03/16
[#9446] Re: thread.rb — matz@... (Yukihiro Matsumoto) 2000/03/17

[#9460] Re: thread.rb — m_seki@... 2000/03/21

[#9462] Re: thread.rb — matz@... (Yukihiro Matsumoto) 2000/03/21

まつもと ゆきひろです

[#11281] Re: thread.rb — Masatoshi SEKI <m_seki@...> 2000/10/22

[#9498] timeout しない timeout — ARIMA Yasuhiro <fit0298@...>

有馬です。

20 messages 2000/03/26
[#9506] Re: timeout しない timeout — matz@... (Yukihiro Matsumoto) 2000/03/27

まつもと ゆきひろです

[#9509] Re: timeout しない timeout — gotoken@... (GOTO Kentaro) 2000/03/27

In message "[ruby-dev:9506] Re: timeout しない timeout"

[ruby-dev:9425] Re: [PATCH] Symbol.new

From: nobu.nakada@...
Date: 2000-03-11 10:15:49 UTC
List: ruby-dev #9425
なかだです。

At Wed, 8 Mar 2000 19:36:59 +0900,
Minero Aoki <aamine@dp.u-netsurf.ne.jp> wrote:
> > それから :sym.is_a(Integer) == true を
> > 仮定しているライブラリ・プログラムがどれくらいあるか
> > 分かりませんが、僕が遭遇したものではracc-0.11.0が
> > こんな風になってます。
> 
> 報告ありがとうございます、直しておきます。

  cparse.c にもあります。


diff -ru2 racc.orig/cparse/cparse.c racc/cparse/cparse.c
--- racc.orig/cparse/cparse.c	Sun Feb 13 20:21:41 2000
+++ racc/cparse/cparse.c	Sat Mar 11 17:02:08 2000
@@ -130,5 +130,9 @@
     method_id  = RARRAY(v->reduce_table)->ptr[ruleno+2];
     len = FIX2LONG(reduce_len);
+#ifdef SYM2ID
+    mid = (ID)SYM2ID(method_id);
+#else
     mid = (ID)FIX2LONG(method_id);
+#endif
 
     if (len == 0) {
diff -ru2 racc.orig/raccp.rb racc/raccp.rb
--- racc.orig/raccp.rb	Sun Feb 13 20:21:40 2000
+++ racc/raccp.rb	Sat Mar 11 16:13:08 2000
@@ -46,7 +46,8 @@
 
     def on_error( tok, val, _values )
-      case val
-      when Fixnum then v = val.id2name
-      when String then v = val
+      if val.respond_to?(:id2name)
+	v = val.id2name
+      elsif String === v
+	v = val
       else
         v = val.inspect
@@ -176,5 +177,5 @@
   def _reduce_1( val, _values, result )
       @interf.end_register_rule
-      @classname = (Integer === val[1]) ? val[1].id2name : val[1]
+      @classname = val[1].respond_to?(:id2name) ? val[1].id2name : val[1]
    result
   end
diff -ru2 racc.orig/rule.rb racc/rule.rb
--- racc.orig/rule.rb	Sun Feb 13 20:21:40 2000
+++ racc/rule.rb	Sat Mar 11 15:47:07 2000
@@ -526,7 +526,8 @@
 
     def to_s   # for system internal
-      case @value
-      when Integer then @value.id2name
-      when String  then @value.inspect
+      if @value.respond_to?(:id2name)
+	@value.id2name
+      else String === @value
+	@value.inspect
       else
         bug! "wrong token value: #{@value}(#{@value.type})"
@@ -537,5 +538,5 @@
     def uneval   # for output
       if    @conv              then @conv
-      elsif Integer === @value then ':' + @value.id2name
+      elsif @value.respond_to?(:id2name) then ':' + @value.id2name
       elsif String === @value  then @value.inspect
       else
diff -ru2 racc.orig/scanner.rb racc/scanner.rb
--- racc.orig/scanner.rb	Sun Feb 13 20:21:41 2000
+++ racc/scanner.rb	Sat Mar 11 16:10:02 2000
@@ -98,5 +98,5 @@
     printf "%7d %-10s %s\n",
       @scan.restsize,
-      Fixnum === s ? s.id2name : s.inspect,
+      s.respond_to(:id2name) ? s.id2name : s.inspect,
       arr[1].inspect
   end

-- 
そうだ 強気に ちょっと インチキに☆彡
    中田 "Bugるくらいがちょうどいいかも;-)" 伸悦

In This Thread