Ripperは、Ruby1.9に付属している解析ライブラリです。次のように、RubyコードをASTに変換します。
pp Ripper.sexp("def foo; yield :a; return 1 end")
#=>
[:program,
[[:def,
[:@ident, "foo", [1, 4]],
[:params, nil, nil, nil, nil, nil],
[:bodystmt,
[[:yield,
[:args_add_block,
[[:symbol_literal, [:symbol, [:@ident, "a", [1, 16]]]]],
false]],
[:return, [:args_add_block, [[:@int, "1", [1, 26]]], false]]],
nil,
nil,
nil]]]]
このASTを取得してRubyコードに戻すためのライブラリはありますか?
ruby_parserとruby2rubyはこれを行っていましたが、パーサーとしてRipperを使用したいと思います。(Ruby 1.9にはそのようなライブラリが付属している場合もありますが、Ripper自体でさえドキュメントを見つけるのに苦労しています)