From: nobu.nakada@... Date: 2002-06-27T08:26:47+09:00 Subject: [ruby-dev:17605] Re: [rubyist:1097] Re: % 記法 なかだです。 At Thu, 27 Jun 2002 03:23:18 +0900, Yukihiro Matsumoto wrote: > |> |こういうことはやっちゃだめなんでしょうか? > |> |正規表現の (?#...) みたいな感じで ~/.irbrc で > |> |使ってしまってたんですが。 > |> > |> 今の1.7では駄目ですね。#が「改行までコメント」なので後ろの } > |> が見つからないからです。 > | > |うーん、これは考えてませんでしたが、"#{#"}"なんてのはちょっと気 > |持悪い…。 > > 潔く駄目でいいんじゃないですかね。 > 互換性うんぬんといってた人と同じ人とは思えないですけど。 > > こういうのを見ると/* */のようなコメントも欲しくなりますね。 *で始まる正規表現はないので衝突はないはずなんですが、どうもいま いちRubyのsyntaxとの親和性はよくないようで。 $ ./i686-linux/miniruby -e 'p 4 / /**/ 2' -e:1: invalid regular expression; there's no previous pattern, to which '*' would define cardinality at 1: /**/ -e:1: syntax error Index: parse.y =================================================================== RCS file: /cvs/ruby/src/ruby/parse.y,v retrieving revision 1.193 diff -u -2 -p -r1.193 parse.y --- parse.y 26 Jun 2002 08:00:55 -0000 1.193 +++ parse.y 26 Jun 2002 19:10:41 -0000 @@ -3760,4 +3760,16 @@ yylex() return tOP_ASGN; } + if (c == '*') { + int line = ruby_sourceline; + while ((c = nextc()) != -1) { + if (c != '*') continue; + while ((c = nextc()) == '*'); + if (c == -1) break; + if (c == '/') goto retry; + } + ruby_sourceline = line; + yyerror("unterminated comment"); + return -1; + } pushback(c); if (IS_ARG() && space_seen) { -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦