Добрый день возникла идея распарсить код программы и построить Sequence diagram.
Пример программы.
Код:
class Program
{
static void Main(string[] args)
{
Foo1();
Foo2();
Foo6();
}
public static void Foo1()
{
Foo2();
}
public static void Foo2()
{
Foo3();
}
public static void Foo3()
{
Foo4();
}
public static void Foo4()
{
}
public static void Foo6()
{
Foo7();
Foo4();
}
public static void Foo7()
{
}
}
Представляет программу в виде графа, списком смежности.
Main -> Foo1 - Foo2 - Foo3
Foo1 -> Foo2
Foo2 -> Foo3
Foo3 -> Foo4
Foo4 ->
Foo6 -> Foo4 - Foo7
Foo7 ->
Что хотелось бы получить в результате
@startuml
Program -> Program ++: Main
Program -> Program ++ : Foo1
Program -> Program : Foo2
Program -> Program : Foo3
Program -> Program -- : Foo4
Program -> Program ++: Foo2
Program -> Program : Foo3
Program -> Program --: Foo4
Program -> Program ++: Foo6
Program -> Program : Foo7
Program -> Program : Foo4
@enduml
Какой алгоритм или подходы еффективно использовать в данном случае? Спасибо.