예제 #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()));
        }
예제 #2
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()));
        }
예제 #3
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()));
        }
예제 #4
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()));
        }
예제 #5
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()));
        }