public void ResumeSpans(ParserContext context) { if (TransitionSpan != null) { context.OutputSpan(TransitionSpan); } if (InitialSpan != null) { context.ResumeSpan(InitialSpan); } }
public void ConstructorInitializesProperties() { // Arrange SeekableTextReader expectedBuffer = new SeekableTextReader(TextReader.Null); CSharpCodeParser expectedCodeParser = new CSharpCodeParser(); HtmlMarkupParser expectedMarkupParser = new HtmlMarkupParser(); // Act ParserContext context = new ParserContext(expectedBuffer, expectedCodeParser, expectedMarkupParser, expectedCodeParser); // Assert Assert.NotNull(context.Source); Assert.Same(expectedCodeParser, context.CodeParser); Assert.Same(expectedMarkupParser, context.MarkupParser); Assert.Same(expectedCodeParser, context.ActiveParser); }
public virtual void Parse(LookaheadTextReader input, ParserVisitor visitor) { // Setup the parser context ParserContext context = new ParserContext(input, CodeParser, MarkupParser, MarkupParser, visitor) { DesignTimeMode = DesignTimeMode }; MarkupParser.Context = context; CodeParser.Context = context; // Execute the context try { MarkupParser.ParseDocument(); } finally { context.OnComplete(); } }
public void ConstructorInitializesProperties() { // Arrange LookaheadTextReader expectedBuffer = new BufferingTextReader(TextReader.Null); CSharpCodeParser expectedCodeParser = new CSharpCodeParser(); HtmlMarkupParser expectedMarkupParser = new HtmlMarkupParser(); ParserVisitor expectedListener = new Mock<ParserVisitor>().Object; // Act ParserContext context = new ParserContext(expectedBuffer, expectedCodeParser, expectedMarkupParser, expectedCodeParser, expectedListener); // Assert Assert.IsInstanceOfType(context.Source, typeof(BufferingTextReader)); Assert.AreSame(expectedBuffer, context.Source); Assert.AreSame(expectedCodeParser, context.CodeParser); Assert.AreSame(expectedMarkupParser, context.MarkupParser); Assert.AreSame(expectedCodeParser, context.ActiveParser); Assert.AreSame(expectedListener, context.Visitor); }
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); }
private static List<Span> ParseDocument(string documentContents, List<RazorError> errors = null) { errors = errors ?? new List<RazorError>(); var reader = new BufferingTextReader(new StringReader(documentContents)); var markupParser = new HtmlMarkupParser(); var parserConsumerMock = new Mock<ParserVisitor>(); List<Span> spans = new List<Span>(); parserConsumerMock.Setup(consumer => consumer.VisitSpan(It.IsAny<Span>())).Callback<Span>(span => spans.Add(span)); parserConsumerMock.Setup(consumer => consumer.VisitError(It.IsAny<RazorError>())).Callback<RazorError>(error => errors.Add(error)); var codeParser = new TestMvcVBRazorCodeParser(); var context = new ParserContext(reader, codeParser, markupParser, markupParser, parserConsumerMock.Object); codeParser.Context = context; markupParser.Context = context; markupParser.ParseDocument(); return spans; }
internal ModelSpan(ParserContext context, string modelTypeName) : this(context.CurrentSpanStart, context.ContentBuffer.ToString(), modelTypeName) { }
private ParserContext SetupTestRun(string document, Action<TextReader> positioningAction, ParserBase codeParser, MarkupParser markupParser, ParserBase activeParser, ParserVisitor listener) { ParserContext context = new ParserContext(new BufferingTextReader(new StringReader(document)), codeParser, markupParser, activeParser, listener); positioningAction(context.Source); context.ResetBuffers(); return context; }
// 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 (); } }
protected void AcceptLineWithBlockComments(ParserContext context, SpanFactory spanFactory) { // Read to the end of the line checking for plan9 block comments bool keepReading = true; while (keepReading) { if (CharUtils.IsNewLine(context.CurrentCharacter)) { context.AcceptNewLine(); keepReading = false; } else if (!TryParseComment(spanFactory)) { context.AcceptCurrent(); } } }
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 ParserContext SetupTestContext(string document, Action<TextReader> positioningAction, ParserBase codeParser, ParserBase markupParser, ParserBase activeParser) { ParserContext context = new ParserContext(new SeekableTextReader(new StringReader(document)), codeParser, markupParser, activeParser); positioningAction(context.Source); return context; }
protected virtual ImplicitExpressionSpan CreateImplicitExpressionSpan(ParserContext context, bool acceptTrailingDot, AcceptedCharacters accepted) { return ImplicitExpressionSpan.Create(context, TopLevelKeywords, acceptTrailingDot, accepted); }
protected virtual ImplicitExpressionSpan CreateImplicitExpressionSpan(ParserContext context, bool acceptTrailingDot, AcceptedCharacters accepted) { return(ImplicitExpressionSpan.Create(context, TopLevelKeywords, acceptTrailingDot, accepted)); }
public static new ResourceSpan Create(ParserContext context, string modelTypeName) { return new ResourceSpan(context.CurrentSpanStart, context.ContentBuffer.ToString(), modelTypeName); }