コード例 #1
0
        public static void PrintAsciiTree(Node ast)
        {
            var asciiBuilder = new AsciiTreeBuilderVisitor();

            asciiBuilder.Visit(ast);
            Console.Write(asciiBuilder.GetStringTree());
        }
コード例 #2
0
        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();
            }
        }