Привел бы картинку с "типо блок-схемой" можно было бы более точный и детальный совет дать.
Ну вот, теперь понятнее. Если исключить вызов Ф2 из Ф3, то получим обычное дерево, если преподаватель хочет именно такой вид. При первом проходе строим дерево связей от main, добавляя к нему только новые элементы, вызываемые из известных, на втором проходе добавляем остальные связи (например обратные, как Ф2 из Ф3).
Отдельно надо решить задачу визуализации линий (т.е. исключить их слияние там, где не надо).
Если велосипед изобретать не надо, то есть такой проект "Graphviz - Graph Visualization Software" http://www.graphviz.org/ - ПО визуализации графов с открытыми исходниками.
1. ANTRL-ом построить синтаксическое дерево и выяснить иерархию вызовов.
2. Построить дерево вызовов.
3. Сделать сериализатор дерева в SVG.
4. PROFIT!
quote:
Originally posted by Renegade:
1. ANTRL-ом построить синтаксическое дерево и выяснить иерархию вызовов.
2. Построить дерево вызовов.
3. Сделать сериализатор дерева в SVG.
4. PROFIT!