From: Tanaka Akira Date: 2003-08-07T15:28:07+09:00 Subject: [ruby-dev:21168] Re: [Oniguruma] list of all captures In article <5FD2F0CF7F5D7F44B00F36870B9E78B508DE5062@SBG-EX4>, kkosako@softbank.co.jp writes: > そうですね。単純な配列だけを返すという仕様で、実装しようかと思います。 > ライブラリが追加情報を返すようにするというだけで、Rubyがその情報を > 使用するようになるかどうかは未定ですが。(使用しなければ今まで通りの > 結果になります) > > 記法は、(?@subexp), (?<@name>subexp) でいいのかな? @name というインスタンス変数に代入されそうな気がします。 > Perl6については知らないのですが、 > Perl5の(?{....})とはかなり違ったものになるのでしょうか? > (後でbacktrackされるかどうかには関係なく、その場所に来れば実行される) Perl5 の (?{...}) と同じ意味だと思います。 > 個人的には、Rubyのコードが実行できる機能は欲しいです。 > 正規表現ライブラリのデバッグに使えるかもしれないので。 > > しかし、そのような機能を入れると、 > そのコードの中でマッチングしている文字列オブジェクトに破壊的な > 操作をされる、という問題があると思います。 > でも、文字列をコピーしてからマッチングを開始すれば回避できてしまうなー。 どっちかっていうと、backtrack に伴う変数の扱いが気になります。 Perl では backtrack すると変数の値が元に戻るようにするわけですが、言語 の他の部分からみるとこれはかなり浮いてると思います。backtrack っていう のはそういうものなのでそれはそれで自然ではあるんですが。 どっちかっていうと、全部マッチが終ってから tree を辿って action を動か せば backtrack は見えなくていいんじゃないかとも思いますが、それだとデ バッグには使えないでしょうねぇ。 -- [田中 哲][たなか あきら][Tanaka Akira]