Example #1
0
        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)
                        );
                }
            }
        }
Example #2
0
        public static DotGraph ToGraphViz(this AstMacroDependencyGraph depGraph)
        {
            var visitor = new AstMacrosDependencyToGraphViz();

            visitor.ToGraphViz(depGraph);

            return(visitor.Graph);
        }
Example #3
0
        /// <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);
        }
Example #5
0
 public GMacAstDescriptionVisitor(AstRoot root)
 {
     Root = root;
     _typeDepGraph = Root.GetTypeDependencies();
     _macroDepGraph = Root.GetMacroDependencies();
 }