けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :12540 ] the message: "[ruby-list:12540] Re: [REQ]
rlex.rb ", on Mar/04 23:29(JST) YANAGAWA Kazuhisa writes:

>> デバッグ中に, どこの状態でマッチが行なわれなかったか明確に分かるのは嬉
>> しいと思うんです.  今の仕様だと, 知らない文字が来た時点でscannerの状態
>> を調べるように書かないと分からないですよね?
>
>「例外が起こった時にスキャナの状態を調べる」のと「知らない文字が返って
>きた時点でスキャナの状態を調べる」のとではどちらも実装する側としては同
>等であろう,というはなしです.

そうではないと思いますよ.

1. 例外であれば, そこで入力エラーが発生しているのが分かるので, いちい
   ち正しいシンボルかどうか調べる必要がない.  

2. デバッグ中には, その例外の発生した場所が特定できるわけですから. そ
   のように実装する必要はない.

逆に, デフォルトで空読みするメリットが見えてこないんですが?

>....そうか,デバッグ中か.そういえば単独で実行する事もできるように書い
>たんだっけ.でもこの場合は入力とマッチによるアクションが目に見えるし.

アクションだけではどの場所でうまくマッチが行なえなかったか分かりずらい
んですよね... 

>いや,入力を String で与えた場合と IO で与えた場合とでこのマッチ規則が
>変わるわけではないし,という話です.唯一,改行にまたがったマッチを明示
>した場合のみ動作が異なりますが,もともとそれはできないつもりだし.
>
># 上の例については伝統的な動作だと思いますけど.んでもって,これが
># chomp が必要であるという根拠になる理由も理解できない....

そうですね...

  ([^\n]*)$

こういうルールがあったとして, これにマッチしたら次の行にいくと信じるの
ま間違いなんでしょうね? いまだと, マッチした後にも "\n"が残りますよね?

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju / rational.com <<---