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

In [ruby-list :12996 ] the message: "[ruby-list:12996] Re: new request
[Re: [REQ] rlex.rb] ", on Mar/18 21:20(JST) YANAGAWA Kazuhisa writes:

>> ところで全然rlexの考え方と異なっちゃうんですが, いちいちrlexでコード生
>> 成という手順を踏まなくてもScannerの生成, 実行できると嬉しいなと思うこ
>> とも多いのですが...
>
>Perl の Parse-Lex(だったかな....)を移植する.....っていうのは置いと
>いて,
>
>String で仕様を与えるとスキャナのクラスなりオブジェクトなりをはくって
>いうことでしょうか.
>
>    s = Rlex.newScanner<<END_OF_SPEC
>    <default>
>    pattern1
>      action1
>    pattern2
>      action2
>    END_OF_SPEC
>
>っていうような.
>実際のところ,入力と出力をちょっといじるだけで実現はできそうですね.

大体そうです. でも,

s = Rlex.new
s.def_action(:default, pattern1) {
  action1
}
s.def_action(:default, pattern2) {
  action2
}

とか

s = Rlex.new
s.def_state(:default) {
  s.def_action(pattern1) {
    action1
  }
  s.def_action(pattern2) {
    action2
  }
}

みたいなかんじがよいかと...

# 後者の実装は苦しいかな...
# それに, 今のrlexと違い過ぎるという問題点も(^^;;;

>やるんだったら今の枠組も当然残しますけど.生成ってどれくらいの計算量に
>なってるかな.あんだけ手抜きなら平気かな.

大きさにもよるでしょうけど... いちいちファイルを生成する手間と比べると
デバッグ効率は良いような...


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