Open sanemat opened 9 years ago
試してみたこと unparserなしに、空のrewriteもしくはParser::Rewriterそのまま使うでrewriteしてみれば、そのASTから新しいrubyコードが出せるのでは? ソースも要るので使えなかった。 => 一番初めのASTとsourceも準備すればいけるのでは。あとでやってみる。
unparser使った時のコメントの場所の維持がAST to ASTしてしまうと使えない。commentのastのlocation(?)も書き換える必要がありそうだけど、どうやって…
unparserの出力をもう一度rewriteってバカっぽいけど、手持ちの知識だとそれぐらいか。
うまくいかない例
rewrited_ast = processor.process(ast)
new_buffer = Parser::Source::Buffer.new('(new)')
new_buffer.source = code
new_source = rewriter.rewrite(new_buffer, rewrited_ast)
puts new_source
AST to ASTをすると、parserのレールに乗れなくなるっぽい
unparser使うといちおうrubyのコードが出力できた。