Exemple #1
0
        public static DotGraph ToLowLevelGraphViz(this AstMacro macro)
        {
            var random = new Random();

            var macroBinding = GMacMacroBinding.Create(macro);

            var lowLevelParameters = macro.InputParameters.SelectMany(p => p.DatastoreValueAccess.ExpandAll());

            foreach (var llp in lowLevelParameters)
            {
                if (random.Next(1, 10) > -1)
                {
                    macroBinding.BindToVariables(llp);
                }

                else
                {
                    macroBinding.BindScalarToConstant(llp, 1);
                }
            }

            lowLevelParameters = macro.OutputParameter.DatastoreValueAccess.ExpandAll();
            foreach (var llp in lowLevelParameters)
            {
                macroBinding.BindToVariables(llp);
            }

            var codeBlock = macroBinding.CreateOptimizedCodeBlock();

            //var visitor = new MacroBindingToGraphViz(macroBinding, codeBlock);
            var visitor = new GMacCodeBlockToGraphViz(codeBlock);

            return(visitor.ToGraphViz());
        }
Exemple #2
0
        public static DotGraph ToGraphViz(this GMacCodeBlock codeBlock)
        {
            var visitor = new GMacCodeBlockToGraphViz(codeBlock);

            return(visitor.ToGraphViz());
        }