Coqのモジュール間の依存関係を可視化するスクリプトを書いたよ
こんな感じの画像を生成してくれます。リファクタリングのお供にどうぞ。
何をやるの?
- coqdepの出力をdotファイルに変換する
- dotファイルをGraphvizで画像に変換する
使い方
$ coqdep -I . *.v | ruby depends.rb > depend.dot $ dot -Tpng -o depend.png depend.dot
ソースコード
昔、OCamlのモジュール間の依存関係を可視化したときのスクリプト(haXeのファイル間の依存関係 - Happy OCaml!! - ocaml-nagoyaグループ)の焼き直しです。
puts 'digraph depend{' ARGF.read.gsub(/\\\n/,'').each do|line| file,depends = line.split ':',2 if file =~ /\.v/ depends.split.each do |x| puts "#{File.basename file,'.*'} -> #{File.basename x,'.*'}" end end end puts '}'