Exemplo n.º 1
0
        private void PrettyPrint(TextWriter writer, SyntaxNode node, string indent = "", bool isLast = true)
        {
            var marker = isLast ? "└──" : "├──";

            var token = node as SyntaxToken;

            writer.ColorWrite(indent, ConsoleColor.White);
            writer.ColorWrite(marker, ConsoleColor.White);
            if (token is null)
            {
                writer.ColorWrite(node.Kind, ConsoleColor.White);
            }
            else
            {
                writer.ColorWrite(token.TokenKind);
                var colorized = ColorizedText.ColorizeToken(token, null);
                writer.ColorWrite(" ");
                writer.ColorWrite(token.Location.ToString(), colorized.Color);
            }
            writer.WriteLine();
            indent += isLast ? "    " : "│   ";
            var lastChild = node.GetChildren().LastOrDefault();

            foreach (var child in node.GetChildren())
            {
                PrettyPrint(writer, child, indent, child == lastChild);
            }
        }
Exemplo n.º 2
0
        protected override void RenderLine(IReadOnlyList <string> lines, int lineCount)
        {
            var line          = lines[lineCount];
            var src           = new SourceText(line, "<stdin>");
            var colorizedText = ColorizedText.ColorizeTokens(src);

            Console.Out.WriteColorizedText(colorizedText);
            Console.WriteLine();
        }