public void PrintCommonTree(CommonTree ast, string indent) { Console.WriteLine(indent + ast.ToString());// + "::" + ast.Token.GetHashCode().ToString()); //Console.WriteLine(ast.GetType().Name); if (ast.Children != null) { indent += " "; foreach (var child in ast.Children) { var childTree = child as CommonTree; //if (childTree.Text != EOF) { PrintCommonTree(childTree, indent); } } } }
public void writeXMLNode(CommonTree ast, XmlWriter writer) { writer.WriteStartElement(ast.ToString()); //writer.WriteAttributeString("line", ast.Token.TokenIndex.ToString()); IList<CommonTree> children = ast.Children as IList<CommonTree>; if (ast.Children != null) { CommonTree firstChild = (CommonTree)ast.Children[0]; if (ast.Children[0] is CommonErrorNode) { createXMLErrorNode((CommonErrorNode)ast.Children[0], writer); } else if (firstChild.Token.TokenIndex > 0) { writer.WriteAttributeString("value", firstChild.Token.Text); } else { writeXMLNode(firstChild as CommonTree, writer); } for (int i = 1; i < ast.ChildCount; i++) { if (ast.Children[i] is CommonErrorNode) { createXMLErrorNode((CommonErrorNode)ast.Children[i], writer); } else { writeXMLNode(ast.Children[i] as CommonTree, writer); } } } writer.WriteEndElement(); }
private static void DumpTree(CommonTree r, int ind) { Console.Write(new string('\t', ind)); Console.WriteLine(r.ToString()); if (r.Children != null) { foreach (CommonTree t in r.Children) { DumpTree(t, ind + 1); } } }