[#28337] constant look up order in CVS HEAD — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

15 messages 2006/02/18
[#28338] Re: constant look up order in CVS HEAD — Tanaka Akira <akr@...17n.org> 2006/02/19

In article <1140229116.805371.31930.nullmailer@x31.priv.netlab.jp>,

[#28341] Re: constant look up order in CVS HEAD — GOTOU Yuuzou <gotoyuzo@...> 2006/02/19

In message <87lkw8xfay.fsf@m17n.org>,

[#28342] Re: constant look up order in CVS HEAD — Yukihiro Matsumoto <matz@...> 2006/02/19

まつもと ゆきひろです

[ruby-dev:28410] Re: irb cannot parse /\^/

From: keiju@... (石塚圭樹)
Date: 2006-02-28 13:51:18 UTC
List: ruby-dev #28410
けいじゅ@いしつかです.

In [ruby-dev:28408] the message: "[ruby-dev:28408] Re: irb cannot
parse /\^/", on Feb/27 23:15(JST) H.Yamamoto <ocean@m2.ccsnet.ne.jp>
writes:

>山本です。
>
>すみません、勘違いでした(汗)
>irb(main):020:0> /\t/ =~ "\t"
>=> 0

これでは, 確認にはなっていないような気がしますが...

それはともかく, 報告ありがとうございました.

>>それは, ともかくとして, \^C のようなエスケープはrubyで許されなくなって
>>いるので, irbも同様にすれば, このバグはなくなります.
>
>お任せします。

とりあえず, CVS/HEAD の方を直しました. 1.8系はもうちょっとたってから直
します.

Index: lib/irb/ruby-lex.rb
===================================================================
RCS file: /src/ruby/lib/irb/ruby-lex.rb,v
retrieving revision 1.28
diff -u -r1.28 ruby-lex.rb
--- lib/irb/ruby-lex.rb	30 Jun 2005 10:07:29 -0000	1.28
+++ lib/irb/ruby-lex.rb	28 Feb 2006 13:39:47 -0000
@@ -309,7 +309,7 @@
     "q" => "\'",
     "Q" => "\"",
     "x" => "\`",
-    "r" => "\/",
+    "r" => "/",
     "w" => "]",
     "W" => "]",
     "s" => ":"
@@ -326,14 +326,14 @@
     "\'" => TkSTRING,
     "\"" => TkSTRING,
     "\`" => TkXSTRING,
-    "\/" => TkREGEXP,
+    "/" => TkREGEXP,
     "]" => TkDSTRING,
     ":" => TkSYMBOL
   }
   DLtype2Token = {
     "\"" => TkDSTRING,
     "\`" => TkDXSTRING,
-    "\/" => TkDREGEXP,
+    "/" => TkDREGEXP,
   }
 
   def lex_init()
@@ -1087,7 +1087,7 @@
   def read_escape
     case ch = getc
     when "\n", "\r", "\f"
-    when "\\", "n", "t", "r", "f", "v", "a", "e", "b" #"
+    when "\\", "n", "t", "r", "f", "v", "a", "e", "b", "s" #"
     when /[0-7]/
       ungetc ch
       3.times do
@@ -1122,7 +1122,7 @@
 	end
       end
 
-    when "C", "c", "^"
+    when "C", "c" #, "^"
       if ch == "C" and (ch = getc) != "-"
 	ungetc
       elsif (ch = getc) == "\\" #"



__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---

In This Thread