| File: Language\DirectiveTokenDescriptor.cs | Web Access |
| Project: src\roslyn\src\Razor\src\Compiler\Microsoft.CodeAnalysis.Razor.Compiler\src\Microsoft.CodeAnalysis.Razor.Compiler.csproj (Microsoft.CodeAnalysis.Razor.Compiler) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #nullable disable namespace Microsoft.AspNetCore.Razor.Language; public abstract class DirectiveTokenDescriptor { public abstract DirectiveTokenKind Kind { get; } public abstract bool Optional { get; } public virtual string Name { get; } public virtual string Description { get; } public static DirectiveTokenDescriptor CreateToken(DirectiveTokenKind kind) { return CreateToken(kind, optional: false); } public static DirectiveTokenDescriptor CreateToken(DirectiveTokenKind kind, bool optional) { return CreateToken(kind, optional, name: null, description: null); } public static DirectiveTokenDescriptor CreateToken(DirectiveTokenKind kind, bool optional, string name, string description) { return new DefaultDirectiveTokenDescriptor(kind, optional, name, description); } private class DefaultDirectiveTokenDescriptor : DirectiveTokenDescriptor { public DefaultDirectiveTokenDescriptor(DirectiveTokenKind kind, bool optional, string name, string description) { Kind = kind; Optional = optional; Name = name; Description = description; } public override DirectiveTokenKind Kind { get; } public override bool Optional { get; } public override string Name { get; } public override string Description { get; } } }