Pascal Units Dependency Graph Builder - вроде были такие мысли когда называл.
Топик выделил отсюда http://www.freepascal.ru/forum/viewtopi ... 5&start=30
Исходники https://github.com/zamtmn/pudgb
Понадобятся пакеты https://github.com/zamtmn/zcad/tree/mas ... tinspector и https://github.com/zamtmn/zcad/tree/mas ... /AGraphLaz
Бинарник https://github.com/zamtmn/pudgb/releases - под другие платформы придется собирать самостоятельно
Программа была написана чтобы навести порядок в одном большом проекте - избавиться от зацикленых зависимостей юнитов. Сканирует исходники проекта, строит полный граф зависимостей и граф "циклических" зависимостей. Полученные графы можно визуализировать в graphwiz или онлайн http://www.webgraphviz.com
Результат работы (формат dot) можно сконвертить для yEd (*.graphml) используя этот питон скрипт https://bitbucket.org/dirkbaechle/dottoxml или онже https://github.com/vivin/dottoxml
В качестве парсера исходников используется fcl-passrc из поставки fpc.
Для работы с графами (поиск зацикливаний) используется AGraph - древний, но очень дельный дельфовый пакет. С ним были некоторые трудности т.к. он не знал что бывает 64 бита и имел наколенную поддержку юникода написаную на асме (во раньше извращались ) Получилось его исправить и подружить с lin-x86_64 - создаю отдельный топик для программы.
Планов развивать - нет, только если совсем будет нечего делать
Результатр работы работы программы: в овалах имена юнитов_x_y
x - сколько юнитов подключено в interface uses
y - сколько юнитов подключено в implementation uses
Пунктирные связи из implementation uses, сплошные связи из interface uses
Циферка у линии связи - сколько циклов останется если эту связь убрать (т.е. нужно стараться уйти от зависимостей где циферка поменьше)