Exemple #1
0
 private void ExtractGVNodes(InstNode root, Dictionary <InstNode, GraphVizNode> nodeDict)
 {
     GraphTraversal.PerformTraversal <InstNode>(root, (node, fringeAdder) =>
     {
         if (!nodeDict.ContainsKey(node))
         {
             var ms = new MemoryStream();
             var sw = new StreamWriter(ms);
             PrettyPrinter.PrettyPrint(node.Content, sw);
             sw.Flush();
             ms.Seek(0, SeekOrigin.Begin);
             var data = new StreamReader(ms).ReadToEnd();
             nodeDict.Add(node, new GraphVizNode()
             {
                 Id = IdC++, Label = data
             });
             if (node.Left != null)
             {
                 fringeAdder(node.Left);
             }
             if (node.Right != null)
             {
                 fringeAdder(node.Right);
             }
         }
     });
 }
Exemple #2
0
        string Evaluate(string input)
        {
            bool   result_set;
            object result;

            try {
                input = evaluator.Evaluate(input, out result, out result_set);

                if (result_set)
                {
                    PrettyPrinter.PrettyPrint(logTextWriter, result);
                    WriteLine();
                }
            } catch (Exception ex) {
                Debug.WriteLine(ex.ToString());

                return(null);
            }

            return(input);
        }
Exemple #3
0
 private void ExtractGVNodes2(Node <IList <IInstruction> > node, Dictionary <Node <IList <IInstruction> >, GraphVizNode> nodeDict)
 {
     if (!nodeDict.ContainsKey(node))
     {
         var ms = new MemoryStream();
         var sw = new StreamWriter(ms);
         PrettyPrinter.PrettyPrint(node.Content, sw);
         sw.Flush();
         ms.Seek(0, SeekOrigin.Begin);
         var data = new StreamReader(ms).ReadToEnd();
         nodeDict.Add(node, new GraphVizNode()
         {
             Id = IdC++, Label = data
         });
         if (node.Left != null)
         {
             ExtractGVNodes(node.Left, nodeDict);
         }
         if (node.Right != null)
         {
             ExtractGVNodes(node.Right, nodeDict);
         }
     }
 }