いわゆる if と後置 if で手に入る AST が同一なので、正規表現に頼るしか術を思いつかなかった。https://t.co/iIzjn4EVvh
— Koichi ITO (@koic) 2018年2月13日
こういうことで AST としては同じなので、ソースコードのテキストでの正規表現を使っての解決策を講じているのだった。
いわゆる if
% ruby-parse -e 'if cond; puts "hi"; end' (if (send nil :cond) (send nil :puts (str "hi")) nil)
後置 if
% ruby-parse -e 'puts "hi" if cond' (if (send nil :cond) (send nil :puts (str "hi")) nil)
あと、後置 if の英名が分からなかったので "後置 if ruby 英語" で Google 検索したらヒットしてインターネットべんりだった。