public static string GetText(TexExpressionNode tree)
 {
     using (var stringWriter = new StringWriter())
     {
         var treeTextRenderer = new TreeTextRenderer(stringWriter);
         treeTextRenderer.Render(tree);
         return(stringWriter.ToString());
     }
 }
示例#2
0
 public void AssertAreTreesEqual(TexExpressionNode a, TexExpressionNode b)
 {
     Assert.AreEqual(a.Symbol, b.Symbol);
     Assert.AreEqual(a.Value, b.Value);
     Assert.AreEqual(a.Children.Count, b.Children.Count);
     for (int i = 0; i < a.Children.Count; i++)
     {
         AssertAreTreesEqual(a.Children[i], b.Children[i]);
     }
 }
        private void Render(TexExpressionNode node, bool isArgument, int level)
        {
            // Prefix argument nodes with '@'.
            var indentation = new string(' ', level * 2);

            this.Writer.WriteLine(indentation + (isArgument ? "@" : string.Empty) + node.ToString());
            if (node.Children != null)
            {
                if (node.Arguments != null)
                {
                    foreach (var childNode in node.Arguments)
                    {
                        Render(childNode, true, level + 1);
                    }
                }
                foreach (var childNode in node.Children)
                {
                    Render(childNode, false, level + 1);
                }
            }
        }
 public void Render(TexExpressionNode tree)
 {
     Render(tree, false, 0);
 }