Open sanemat opened 9 years ago
Parser::RewriterはParser::AST::Processorを継承しているので、rewriteをそのままprocessorつかえばいいのかな、と思った。が、ダメ。
Parser::Rewriter
Parser::AST::Processor
Parser::Source::Rewriter#remove, Parser::Source::Rewriter#insert_before, Parser::Source::Rewriter#insert_after, Parser::Source::Rewriter#replace, を通る変更(内部でParser::Source::Rewriter#appendを使うもの)しか受け付けなそう。
Parser::Source::Rewriter#remove
Parser::Source::Rewriter#insert_before
Parser::Source::Rewriter#insert_after
Parser::Source::Rewriter#replace
Parser::Source::Rewriter#append
どれもastのrangeをstringのcontentで変更するもの、なのでast同士の入れ替えはrewriteがサポートするものではないっぽい。
Parser::Rewriter
はParser::AST::Processor
を継承しているので、rewriteをそのままprocessorつかえばいいのかな、と思った。が、ダメ。Parser::Source::Rewriter#remove
,Parser::Source::Rewriter#insert_before
,Parser::Source::Rewriter#insert_after
,Parser::Source::Rewriter#replace
, を通る変更(内部でParser::Source::Rewriter#append
を使うもの)しか受け付けなそう。どれもastのrangeをstringのcontentで変更するもの、なのでast同士の入れ替えはrewriteがサポートするものではないっぽい。