public ParserContext(ITextDocument source, ParserBase codeParser, ParserBase markupParser, ParserBase activeParser) { if (source == null) { throw new ArgumentNullException("source"); } if (codeParser == null) { throw new ArgumentNullException("codeParser"); } if (markupParser == null) { throw new ArgumentNullException("markupParser"); } if (activeParser == null) { throw new ArgumentNullException("activeParser"); } if (activeParser != codeParser && activeParser != markupParser) { throw new ArgumentException(RazorResources.ActiveParser_Must_Be_Code_Or_Markup_Parser, "activeParser"); } CaptureOwnerTask(); Source = new TextDocumentReader(source); CodeParser = codeParser; MarkupParser = markupParser; ActiveParser = activeParser; Errors = new List<RazorError>(); }
public ParserContext(ITextDocument source, ParserBase codeParser, ParserBase markupParser, ParserBase activeParser) { if (source == null) { throw new ArgumentNullException("source"); } if (codeParser == null) { throw new ArgumentNullException("codeParser"); } if (markupParser == null) { throw new ArgumentNullException("markupParser"); } if (activeParser == null) { throw new ArgumentNullException("activeParser"); } if (activeParser != codeParser && activeParser != markupParser) { throw new ArgumentException(RazorResources.ActiveParser_Must_Be_Code_Or_Markup_Parser, "activeParser"); } CaptureOwnerTask(); Source = new TextDocumentReader(source); CodeParser = codeParser; MarkupParser = markupParser; ActiveParser = activeParser; Errors = new List <RazorError>(); }
public override ParserContext CreateParserContext( ITextDocument input, ParserBase codeParser, ParserBase markupParser, ErrorSink errorSink) { return base.CreateParserContext(input, codeParser, markupParser, errorSink); }
/// <summary> /// Initializes a new instance of <see cref="RazorParser"/>. /// </summary> /// <param name="codeParser">The <see cref="ParserBase"/> used for parsing code content.</param> /// <param name="markupParser">The <see cref="ParserBase"/> used for parsing markup content.</param> /// <param name="tagHelperDescriptorResolver">The <see cref="ITagHelperDescriptorResolver"/> used to resolve /// <see cref="TagHelperDescriptor"/>s.</param> public RazorParser([NotNull] ParserBase codeParser, [NotNull] ParserBase markupParser, ITagHelperDescriptorResolver tagHelperDescriptorResolver) : this(codeParser, markupParser, tagHelperDescriptorResolver, GetDefaultRewriters(markupParser)) { }
private RazorParser(ParserBase codeParser, ParserBase markupParser, ITagHelperDescriptorResolver tagHelperDescriptorResolver, IEnumerable <ISyntaxTreeRewriter> optimizers) { CodeParser = codeParser; MarkupParser = markupParser; TagHelperDescriptorResolver = tagHelperDescriptorResolver; Optimizers = optimizers.ToList(); }
private RazorParser(ParserBase codeParser, ParserBase markupParser, ITagHelperDescriptorResolver tagHelperDescriptorResolver, IEnumerable<ISyntaxTreeRewriter> optimizers) { CodeParser = codeParser; MarkupParser = markupParser; TagHelperDescriptorResolver = tagHelperDescriptorResolver; Optimizers = optimizers.ToList(); }
public virtual ParserContext CreateParserContext(ITextDocument input, ParserBase codeParser, ParserBase markupParser, ErrorSink errorSink) { return new ParserContext(input, codeParser, markupParser, SelectActiveParser(codeParser, markupParser), errorSink); }
private static IEnumerable <ISyntaxTreeRewriter> GetDefaultRewriters(ParserBase markupParser) { return(new ISyntaxTreeRewriter[] { // TODO: Modify the below WhiteSpaceRewriter & ConditionalAttributeCollapser to handle // TagHelperBlock's: https://github.com/aspnet/Razor/issues/117 // Move whitespace from start of expression block to markup new WhiteSpaceRewriter(markupParser.BuildSpan), // Collapse conditional attributes where the entire value is literal new ConditionalAttributeCollapser(markupParser.BuildSpan), }); }
/// <summary> /// Initializes a new instance of <see cref="RazorParser"/>. /// </summary> /// <param name="codeParser">The <see cref="ParserBase"/> used for parsing code content.</param> /// <param name="markupParser">The <see cref="ParserBase"/> used for parsing markup content.</param> /// <param name="tagHelperDescriptorResolver">The <see cref="ITagHelperDescriptorResolver"/> used to resolve /// <see cref="TagHelperDescriptor"/>s.</param> public RazorParser(ParserBase codeParser, ParserBase markupParser, ITagHelperDescriptorResolver tagHelperDescriptorResolver) : this(codeParser, markupParser, tagHelperDescriptorResolver, GetDefaultRewriters(markupParser)) { if (codeParser == null) { throw new ArgumentNullException(nameof(codeParser)); } if (markupParser == null) { throw new ArgumentNullException(nameof(markupParser)); } }
public ParserContext(ITextDocument source, ParserBase codeParser, ParserBase markupParser, ParserBase activeParser, ErrorSink errorSink) { if (source == null) { throw new ArgumentNullException(nameof(source)); } if (codeParser == null) { throw new ArgumentNullException(nameof(codeParser)); } if (markupParser == null) { throw new ArgumentNullException(nameof(markupParser)); } if (activeParser == null) { throw new ArgumentNullException(nameof(activeParser)); } if (errorSink == null) { throw new ArgumentNullException(nameof(errorSink)); } if (activeParser != codeParser && activeParser != markupParser) { throw new ArgumentException(RazorResources.ActiveParser_Must_Be_Code_Or_Markup_Parser, nameof(activeParser)); } CaptureOwnerTask(); Source = new TextDocumentReader(source); CodeParser = codeParser; MarkupParser = markupParser; ActiveParser = activeParser; _errorSink = errorSink; }
public ParserContext([NotNull] ITextDocument source, [NotNull] ParserBase codeParser, [NotNull] ParserBase markupParser, [NotNull] ParserBase activeParser, [NotNull] ParserErrorSink errorSink) { if (activeParser != codeParser && activeParser != markupParser) { throw new ArgumentException(RazorResources.ActiveParser_Must_Be_Code_Or_Markup_Parser, "activeParser"); } CaptureOwnerTask(); Source = new TextDocumentReader(source); CodeParser = codeParser; MarkupParser = markupParser; ActiveParser = activeParser; _errorSink = errorSink; }
public RazorParser(ParserBase codeParser, ParserBase markupParser) { if (codeParser == null) { throw new ArgumentNullException("codeParser"); } if (markupParser == null) { throw new ArgumentNullException("markupParser"); } MarkupParser = markupParser; CodeParser = codeParser; Optimizers = new List <ISyntaxTreeRewriter>() { // Move whitespace from start of expression block to markup new WhiteSpaceRewriter(MarkupParser.BuildSpan), // Collapse conditional attributes where the entire value is literal new ConditionalAttributeCollapser(MarkupParser.BuildSpan), }; }
public RazorParser(ParserBase codeParser, ParserBase markupParser) { if (codeParser == null) { throw new ArgumentNullException("codeParser"); } if (markupParser == null) { throw new ArgumentNullException("markupParser"); } MarkupParser = markupParser; CodeParser = codeParser; Optimizers = new List<ISyntaxTreeRewriter>() { // Move whitespace from start of expression block to markup new WhiteSpaceRewriter(MarkupParser.BuildSpan), // Collapse conditional attributes where the entire value is literal new ConditionalAttributeCollapser(MarkupParser.BuildSpan), }; }
protected abstract ParserBase SelectActiveParser(ParserBase codeParser, ParserBase markupParser);
private static IEnumerable<ISyntaxTreeRewriter> GetDefaultRewriters(ParserBase markupParser) { return new ISyntaxTreeRewriter[] { // TODO: Modify the below WhiteSpaceRewriter & ConditionalAttributeCollapser to handle // TagHelperBlock's: https://github.com/aspnet/Razor/issues/117 // Move whitespace from start of expression block to markup new WhiteSpaceRewriter(markupParser.BuildSpan), // Collapse conditional attributes where the entire value is literal new ConditionalAttributeCollapser(markupParser.BuildSpan), }; }
protected override ParserBase SelectActiveParser(ParserBase codeParser, ParserBase markupParser) { return markupParser; }
/// <inheritdoc /> public override ParserBase DecorateCodeParser(ParserBase incomingCodeParser) { if (incomingCodeParser == null) { throw new ArgumentNullException(nameof(incomingCodeParser)); } return new MvcRazorCodeParser(); }
private ParserContext SetupTestContext(string document, Action<TextReader> positioningAction, ParserBase codeParser, ParserBase markupParser, ParserBase activeParser) { var context = new ParserContext( new SeekableTextReader(new StringReader(document)), codeParser, markupParser, activeParser, new ErrorSink()); positioningAction(context.Source); return context; }
/// <summary> /// Gets an instance of the markup parser and is provided an opportunity to decorate or replace it /// </summary> /// <param name="incomingMarkupParser">The markup parser</param> /// <returns>Either the same markup parser, after modifications, or a different markup parser</returns> public virtual ParserBase DecorateMarkupParser(ParserBase incomingMarkupParser) { if (incomingMarkupParser == null) { throw new ArgumentNullException(nameof(incomingMarkupParser)); } return incomingMarkupParser; }
public override ParserBase DecorateCodeParser(ParserBase incomingCodeParser) { return new MvcRazorCodeParser(_baseType); }
/// <summary> /// Gets an instance of the code parser and is provided an opportunity to decorate or replace it /// </summary> /// <param name="incomingCodeParser">The code parser</param> /// <returns>Either the same code parser, after modifications, or a different code parser</returns> public virtual ParserBase DecorateCodeParser(ParserBase incomingCodeParser) { if (incomingCodeParser == null) { throw new ArgumentNullException("incomingCodeParser"); } return incomingCodeParser; }