internal void ToGraphViz(AstMacroDependencyGraph dep) { Graph.SetRankDir(DotRankDirection.LeftToRight); foreach (var astTypeDep in dep.Items) { var node = Graph .AddNode(astTypeDep.BaseItem.AccessName) .SetLabel( Graph.Table( "Macro", astTypeDep.BaseItem.AccessName ) ); if (astTypeDep.UsedCount > 0) { node .AddEdgesFrom( astTypeDep.UsedItems.Select(t => t.AccessName) ); } } }
public static DotGraph ToGraphViz(this AstMacroDependencyGraph depGraph) { var visitor = new AstMacrosDependencyToGraphViz(); visitor.ToGraphViz(depGraph); return(visitor.Graph); }
/// <summary> /// Construct a macro dependency graph of all macros under this AST /// </summary> /// <returns></returns> public AstMacroDependencyGraph GetMacroDependencies() { var dep = new AstMacroDependencyGraph(this); dep.Populate(); return(dep); }
public void Visit(AstMacro macro) { _dependencyGraph = macro.Root.GetMacroDependencies(); Graph.SetRankDir(DotRankDirection.LeftToRight); Graph .AddNode(macro.AccessName) .SetFillColor(Color.GreenYellow.ToDotRgbColor()) .SetLabel( Graph.Table( "Macro", macro.AccessName ) ); _dict.Clear(); AddCallerMacros(macro); _dict.Clear(); AddCalledMacros(macro); }
public GMacAstDescriptionVisitor(AstRoot root) { Root = root; _typeDepGraph = Root.GetTypeDependencies(); _macroDepGraph = Root.GetMacroDependencies(); }