public static string GetText(TexExpressionNode tree) { using (var stringWriter = new StringWriter()) { var treeTextRenderer = new TreeTextRenderer(stringWriter); treeTextRenderer.Render(tree); return(stringWriter.ToString()); } }
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); }