public static void PrintAsciiTree(Node ast) { var asciiBuilder = new AsciiTreeBuilderVisitor(); asciiBuilder.Visit(ast); Console.Write(asciiBuilder.GetStringTree()); }
public void AstBuilding_Valid() { var path = Path.Combine("tests", "ast-building", "valid"); var astBuilder = new AstBuilderVisitor(); var asciiPrinter = new AsciiTreeBuilderVisitor(); foreach (var testFile in Directory.GetFiles(path, "*.js", SearchOption.AllDirectories)) { var parser = Program.CreateParser(File.ReadAllText(testFile)); asciiPrinter.Visit(astBuilder.Visit(Program.TryToBuildParseTree(parser))); var expected = File.ReadAllText(Path.ChangeExtension(testFile, ".tree.ascii")); Assert.AreEqual(asciiPrinter.GetStringTree(), expected); asciiPrinter.ClearTree(); } }