using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
"using System.Security;\r\n"+
var syntaxTree = CSharpSyntaxTree.ParseText(code);
var root = syntaxTree.GetRoot();
static void PrintTree(SyntaxNode node, string indent)
Console.WriteLine($"{indent}|-- {node.GetType().Name}(Kind={node.Kind()})");
foreach (var child in node.ChildNodesAndTokens())
PrintTree(child.AsNode(), indent + "| ");
var token = child.AsToken();
Console.WriteLine($"{indent} \\-- {token.GetType().Name}(Kind={token.Kind()}, Text=\"{token.Text}\", ValueText: \"{token.ValueText}\", ToFullString=\"{token.ToFullString()}\")");
foreach (var trivia in token.LeadingTrivia)
Console.WriteLine($"{indent} Leading Trivia: {trivia.GetType().Name}(Kind={trivia.Kind()} \"{trivia.ToFullString()}\")");
foreach (var trivia in token.TrailingTrivia)
Console.WriteLine($"{indent} Trailing Trivia: {trivia.GetType().Name}(Kind={trivia.Kind()} \"{trivia.ToFullString()}\")");