internal virtual RazorSyntaxTree ParseCodeBlock( string document, IEnumerable <DirectiveDescriptor> directives, bool designTime) { directives = directives ?? Array.Empty <DirectiveDescriptor>(); var source = TestRazorSourceDocument.Create(document, fileName: null); var options = CreateParserOptions(directives, designTime); var context = new ParserContext(source, options); var parser = new CSharpCodeParser(directives, context); parser.HtmlParser = new HtmlMarkupParser(context) { CodeParser = parser, }; parser.ParseBlock(); var root = context.Builder.Build(); var diagnostics = context.ErrorSink.Errors?.Select(error => RazorDiagnostic.Create(error)); return(RazorSyntaxTree.Create(root, source, diagnostics, options)); }
internal virtual RazorSyntaxTree ParseCodeBlock( RazorLanguageVersion version, string document, IEnumerable <DirectiveDescriptor> directives, bool designTime) { directives = directives ?? Array.Empty <DirectiveDescriptor>(); var source = TestRazorSourceDocument.Create(document, filePath: null, relativePath: null, normalizeNewLines: true); var options = CreateParserOptions(version, directives, designTime); var context = new ParserContext(source, options); var codeParser = new CSharpCodeParser(directives, context); var markupParser = new HtmlMarkupParser(context); codeParser.HtmlParser = markupParser; markupParser.CodeParser = codeParser; var root = codeParser.ParseBlock().CreateRed(); var diagnostics = context.ErrorSink.Errors; var syntaxTree = RazorSyntaxTree.Create(root, source, diagnostics, options); return(syntaxTree); }
public void ParseBlockMethodThrowsArgNullExceptionOnNullContext() { // Arrange CSharpCodeParser parser = new CSharpCodeParser(); // Act and Assert Assert.Throws <InvalidOperationException>(() => parser.ParseBlock(), RazorResources.Parser_Context_Not_Set); }
public void ParseBlockMethodThrowsArgNullExceptionOnNullContext() { // Arrange var parser = new CSharpCodeParser(); // Act and Assert var exception = Assert.Throws <InvalidOperationException>(() => parser.ParseBlock()); Assert.Equal(RazorResources.Parser_Context_Not_Set, exception.Message); }