Ejemplo n.º 1
0
        public void PrintsComplexTree()
        {
            var input = new SyntaxNodeWithChildren(
                SyntaxKind.BinaryExpression,
                new SyntaxNodeWithChildren(
                    SyntaxKind.BinaryExpression,
                    new SyntaxToken(SyntaxKind.NumberToken, 0, "", 7),
                    new SyntaxToken(SyntaxKind.SlashToken, 0, ""),
                    new SyntaxToken(SyntaxKind.NumberToken, 0, "", 3)
                    ),
                new SyntaxToken(SyntaxKind.MinusToken, 0, ""),
                new SyntaxNodeWithChildren(
                    SyntaxKind.BinaryExpression,
                    new SyntaxToken(SyntaxKind.NumberToken, 0, "", 2),
                    new SyntaxToken(SyntaxKind.StarToken, 0, ""),
                    new SyntaxToken(SyntaxKind.NumberToken, 0, "", 0)
                    )
                );

            var result = ParseTreePrinter.PrettyPrint(input);

            Assert.That(result, Is.EqualTo(@"
BinaryExpression
 ├─BinaryExpression
 │  ├─NumberToken: 7
 │  ├─SlashToken
 │  └─NumberToken: 3
 ├─MinusToken
 └─BinaryExpression
    ├─NumberToken: 2
    ├─StarToken
    └─NumberToken: 0".TrimStart()));
        }
Ejemplo n.º 2
0
        public void PrintsSingleTokenWithoutValue()
        {
            var input = new SyntaxToken(SyntaxKind.PlusToken, 73, "something");

            var result = ParseTreePrinter.PrettyPrint(input);

            Assert.That(result, Is.EqualTo("PlusToken"));
        }
Ejemplo n.º 3
0
        public void PrintsSingleTokenWithValue()
        {
            var input = new SyntaxToken(SyntaxKind.BadToken, 73, "foobar", 123);

            var result = ParseTreePrinter.PrettyPrint(input);

            Assert.That(result, Is.EqualTo("BadToken: 123"));
        }
Ejemplo n.º 4
0
        private static void PrintParseTree(SyntaxTree syntaxTree)
        {
            WriteToConsole(ConsoleColor.DarkGray, "Parse Tree:");
            Console.WriteLine();

            ParseTreePrinter.PrettyPrint(syntaxTree.Root, Console.Out, firstLinePrefix: "    ", furtherLinePrefix: "    ");
            Console.WriteLine();
        }
Ejemplo n.º 5
0
        public void PrintsNodeWithSingleChild()
        {
            var input = new SyntaxNodeWithChildren(
                SyntaxKind.LiteralExpression,
                new SyntaxToken(SyntaxKind.NumberToken, 0, "", 42)
                );

            var result = ParseTreePrinter.PrettyPrint(input);

            Assert.That(result, Is.EqualTo(@"
LiteralExpression
 └─NumberToken: 42".TrimStart()));
        }
Ejemplo n.º 6
0
        public void PrintsNodeWithMultipleChildren()
        {
            var input = new SyntaxNodeWithChildren(
                SyntaxKind.LiteralExpression,
                new SyntaxToken(SyntaxKind.MinusToken, 0, ""),
                new SyntaxToken(SyntaxKind.NumberToken, 0, "", "72")
                );

            var result = ParseTreePrinter.PrettyPrint(input);

            Assert.That(result, Is.EqualTo(@"
LiteralExpression
 ├─MinusToken
 └─NumberToken: 72".TrimStart()));
        }
Ejemplo n.º 7
0
        public void PrintsNodeWithNestedChild()
        {
            var input = new SyntaxNodeWithChildren(
                SyntaxKind.LiteralExpression,
                new SyntaxNodeWithChildren(
                    SyntaxKind.LiteralExpression,
                    new SyntaxToken(SyntaxKind.MinusToken, 0, "")
                    )
                );

            var result = ParseTreePrinter.PrettyPrint(input);

            Assert.That(result, Is.EqualTo(@"
LiteralExpression
 └─LiteralExpression
    └─MinusToken".TrimStart()));
        }
Ejemplo n.º 8
0
        public void PrintsTwoChildrenWhenFirstHasChild()
        {
            var input = new SyntaxNodeWithChildren(
                SyntaxKind.LiteralExpression,
                new SyntaxNodeWithChildren(
                    SyntaxKind.LiteralExpression,
                    new SyntaxToken(SyntaxKind.LiteralToken, 0, "")
                    ),
                new SyntaxToken(SyntaxKind.SingleLineCommentToken, 0, "")
                );

            var result = ParseTreePrinter.PrettyPrint(input);

            Assert.That(result, Is.EqualTo(@"
LiteralExpression
 ├─LiteralExpression
 │  └─LiteralToken
 └─SingleLineCommentToken".TrimStart()));
        }