From: nobu.nakada@... Date: 2002-06-23T15:06:30+09:00 Subject: [ruby-dev:17550] Re: broken string when unterminated "#{". なかだです。 At Sun, 23 Jun 2002 12:11:18 +0900, Tanaka Akira wrote: > > 無理にread_escape()を使わずに単純にもう一回nextc()をするだけで > > も充分かもしれませんが、なんとなく中途半端な感じ。 > > うぅむ、str_extend() は文字列終端以外は \ がついていてもそのままにする > ので、read_escape() はやりすぎで、nextc() を使って読んで、エスケープ対 > 象以外は pushback() するんだと思いますが。 御意。 > 従って、互換性は将来の仕様を壊さない範囲に限定して保持するのがいいんじゃ > ないかと思います。で、おそらく実用上は \"...\" というような形式の文字 > 列が扱えれば十分なので、yylex で \ のついた文字列の開始をみつけた場合、 > エスケープされた終端を文字列の終端とみなすというコードを入れるだけで済 > ますのがいいのではないかと思うんですが、どうでしょう? 手元のでは、開始記号と終端が同じ場合だけエスケープを許すという 風にしてます。 まだ仕様として固まっていないのでメインに入れてしまうのは不安が あるんですが、このままだとやりづらいのでとりあえずブランチに入 れてしまうのはどうでしょうか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦