Ruby言語パーサのruby_parser 1.0.0が初リリースによると、Ruby による Ruby パーサが公開されたようです。安定すれば相当便利に使えるでしょうから、勉強がてらさっそく触ってみることにしました。
■ ruby_parser とは?
Ruby で記述された Ruby パーサ。Ruby の構文を受け取って S 式を返します。Lisp 使いにとってはなじみのある形式です。
ホームページ
http://parsetree.rubyforge.org/
RubyForge のプロジェクトサマリ
https://rubyforge.org/projects/parsetree/
■ テスト環境
OS : Windows Vista
CPU: Code2Duo E6850
Mem: 2GB
■ インストール
gem を使えるので、楽ちんです。
gem install ruby_parser --include-dependencies
■ テストコード
実行するのは以下のコードです。
ENV['HOME'] = ''
require 'ruby_parser'
@processor = RubyParser.new
p @processor.parse("p 'Hello RubyParser World!'")
結果は以下のとおりです。
s(:fcall, :p, s(:array, s(:str, "Hello RubyParser World!")))
■ 注意
私の環境では環境変数「HOME」が空文字でもいいので宣言されていないと、require で失敗します。なぜそうなるかは、調査していないのでわかりません。あとで潜ってみるかもしれません。
■ 感想
「楽」の一言に尽きます。
Kodougu に組み込んで、Ruby2JavaScript とか実装すれば、クライアントも Ruby で書けるかも、、、などと危ない妄想をしています。どれくらい安定しているのかなどは全くわからないので、しばらく使いこんでみたいと思います。