private ParserResults ParseCore(ITextDocument input) { // Setup the parser context ParserContext context = new ParserContext(input, CodeParser, MarkupParser, MarkupParser) { DesignTimeMode = DesignTimeMode }; MarkupParser.Context = context; CodeParser.Context = context; // Execute the parse MarkupParser.ParseDocument(); // Get the result ParserResults results = context.CompleteParse(); // Rewrite whitespace if supported Block current = results.Document; foreach (ISyntaxTreeRewriter rewriter in Optimizers) { current = rewriter.Rewrite(current); } // Return the new result return(new ParserResults(current, results.ParserErrors)); }
private ParserResults ParseCore(ITextDocument input) { // Setup the parser context ParserContext context = new ParserContext(input, CodeParser, MarkupParser, MarkupParser) { DesignTimeMode = DesignTimeMode }; MarkupParser.Context = context; CodeParser.Context = context; // Execute the parse MarkupParser.ParseDocument(); // Get the result ParserResults results = context.CompleteParse(); // Rewrite whitespace if supported Block current = results.Document; foreach (ISyntaxTreeRewriter rewriter in Optimizers) { current = rewriter.Rewrite(current); } // Link the leaf nodes into a chain Span prev = null; foreach (Span node in current.Flatten()) { node.Previous = prev; if (prev != null) { prev.Next = node; } prev = node; } // Return the new result return(new ParserResults(current, results.ParserErrors)); }
private static List<Span> ParseDocument(string documentContents, IList<RazorError> errors = null) { errors = errors ?? new List<RazorError>(); var markupParser = new HtmlMarkupParser(); var codeParser = new TestMvcCSharpRazorCodeParser(); var context = new ParserContext(new SeekableTextReader(documentContents), codeParser, markupParser, markupParser); codeParser.Context = context; markupParser.Context = context; markupParser.ParseDocument(); ParserResults results = context.CompleteParse(); foreach (RazorError error in results.ParserErrors) { errors.Add(error); } return results.Document.Flatten().ToList(); }
private ParserResults ParseCore(ITextDocument input) { // Setup the parser context ParserContext context = new ParserContext(input, CodeParser, MarkupParser, MarkupParser) { DesignTimeMode = DesignTimeMode }; MarkupParser.Context = context; CodeParser.Context = context; // Execute the parse MarkupParser.ParseDocument(); // Get the result ParserResults results = context.CompleteParse(); // Rewrite whitespace if supported Block current = results.Document; foreach (ISyntaxTreeRewriter rewriter in Optimizers) { current = rewriter.Rewrite(current); } // Link the leaf nodes into a chain Span prev = null; foreach (Span node in current.Flatten()) { node.Previous = prev; if (prev != null) { prev.Next = node; } prev = node; } // Return the new result return new ParserResults(current, results.ParserErrors); }
// Creates spans when the parsed document isn't available yet. void CreateSpans () { using (SeekableTextReader source = new SeekableTextReader (doc.Text)) { var markupParser = new HtmlMarkupParser (); var codeParser = new MvcCSharpRazorCodeParser (); var context = new ParserContext (source, codeParser, markupParser, markupParser) { DesignTimeMode = true }; codeParser.Context = context; markupParser.Context = context; context.ActiveParser.ParseDocument (); var results = context.CompleteParse (); currentSpans = results.Document.Flatten ().ToList (); } }
private ParserResults ParseCore(ITextDocument input) { // Setup the parser context ParserContext context = new ParserContext(input, CodeParser, MarkupParser, MarkupParser) { DesignTimeMode = DesignTimeMode }; MarkupParser.Context = context; CodeParser.Context = context; // Execute the parse MarkupParser.ParseDocument(); // Get the result ParserResults results = context.CompleteParse(); // Rewrite whitespace if supported Block current = results.Document; foreach (ISyntaxTreeRewriter rewriter in Optimizers) { current = rewriter.Rewrite(current); } // Return the new result return new ParserResults(current, results.ParserErrors); }