private static IEnumerable <AstNode> ParseAsMethodBody(CSharpParser parser, ref string sourceCode) { sourceCode = ExtraCode.Add( before: "unsafe partial class MyClass { void M() { ", code: sourceCode, after: "}}"); return(parser.Parse(new StringReader(sourceCode), "").Children); }
private string GetHighlighted() { var parser = new CSharpParser(); var nodes = parser.ParseSnippet(ref SourceCode); Document = new ReadOnlyDocument(SourceCode); foreach (var element in nodes) { Walk(element); } var merged = Merge(); var cleaned = ExtraCode.Remove(merged); return(cleaned); }
private static bool TryParseAsClassBody(CSharpParser parser, out IEnumerable <AstNode> nodes, ref string sourceCode) { var code = ExtraCode.Add( before: "unsafe partial class MyClass { ", code: sourceCode, after: "}"); var result = parser.Parse(new StringReader(code), ""); if (!parser.HasErrors) { sourceCode = code; nodes = result.Children; return(true); } nodes = null; return(false); }