2010-12-01から1ヶ月間の記事一覧

yard_ast_editable ってのを作ってみた

Rubyのシンタックスをパースして、構文木をいじってソースコードを編集するために作ってみました。 https://github.com/akm/yard_ast_editableYARD::Parser::Ruby::RubyParserが良さげだったので、YARD::Parser::Ruby::AstNodeを拡張して、find_by_ident と …

Ripper

http://ujihisa.blogspot.com/2009/07/parsers-around-ruby.html の記事の最後にあったので、あんまり期待してないで調べはじめたら、これgemとかじゃなくて、1.9系からの標準添付ライブラリなのね。ちょっとテンション高めで使ってみたらいけました!コメン…

parse_tree

ruby-1.9.2では動かなかったので、1.8.7で。やっぱりコメント取れなかった。 require 'parse_tree' #=> true sexp_array = ParseTree.translate("1+1") #=> [:call, [:lit, 1], :+, [:array, [:lit, 1]]] lines = <<EOS # AAAAAA def foo(*args) puts args.inspect end EOS #=> " # AAAAAA\n def foo(*args)\n puts args</eos>…

ruby_parser

rubynodeは古かった。探してみたら、まとめサイト発見。 http://ujihisa.blogspot.com/2009/07/parsers-around-ruby.htmlruby_parserというまんまな名前のものが見つかった。 http://parsetree.rubyforge.org/ruby_parser/ruby-1.9.2で試してみた。 require …

rubynode

rubyの構文、特にコメントを解析したくなってrubynodeというgemを見つけました。最後のメンテが2年前だけど。 http://rubynode.rubyforge.org/ruby-1.8.6-p399で確認しました。 require "rubynode" #=> false code = <<EOS #aaaaaaaaaa # bbbbbb def foo puts "AAA" end def bar(*args) puts args.inspect end EOS #=> " #aaaaaaaaaa\n # bbbbbb\n def foo\</eos>…