From: keiju@... (Keiju ISHITSUKA) Date: 1997-09-30T21:53:44+09:00 Subject: [ruby-list:4741] rbc.rb けいじゅ@日本ラショナルソフトウェアです. rbc.rb-0.5 を contrib に putします. sample/eval.rb がありますが, それの上位互換バージョンで, eval.rbよりも より正確に式の終りが検出できるバージョンです. 以下のような感じで利用できます. % rbc.rb rbc0> def fact(n) rbc1> return 1 if n == 0 rbc1> n * fact(n-1) rbc1> end nil rbc0> fact(10) 3628800 rbc0> exit 標準の動作は, eval.rbと同じで, -m オプションをつけて起動すると, mathn.rbをロードします. 分数の計算や行列の計算ができるようになります. bcの ``.'' は使えませんので, 代わりに ``_''で前式の実行結果が得られる ようになっています. また, $INSPECT = TRUE とすると, 実行結果をinspect したものを表示するようになります. 今後の予定(未定です). 1. hereドキュメントにに対応する, evalがhereドキュメントを理解してくれ ないのと, rbc.rbの字句解析器がhereドキュメントに対応できていないた めです. 2. いつかは, readline.rbを取り込みたいなと思っています. 手元に readline.cがないので... 3. rubyの字句解析を行っているのですが, これで利用できるレベルでしか行っ ていません. 少なくとも各トークンが識別できるレベルに持っていきたい と思っています. んで, ライブラリとして切り分けられたらいいなと考え ています. 4. rubyのyylex()では, 一文字づつ識別しているのですが, 大名プログラマで ある私には耐えられませんでした(^^;;; それで, trieをベースにした字句 解析クラスを作りました. これももう少し整備したら, もしかしたら一般 のライブラリとして利用できるのではないだろうか? と考えています. PS. とても全パターンを実行して確かめてみることはできないので, バグが潜んで いると思います. そのような場合はmailを下さい(__;; __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---