rust-code-analysis 0.0.18

Tool to compute and export code metrics
Documentation
// Code generated; DO NOT EDIT.

#[derive(Clone, Debug, PartialEq)]
pub enum CSharp {
    End = 0,
    Identifier = 1,
    Extern = 2,
    Alias = 3,
    SEMI = 4,
    Using = 5,
    Static = 6,
    EQ = 7,
    COLONCOLON = 8,
    LT = 9,
    COMMA = 10,
    GT = 11,
    DOT = 12,
    LBRACK = 13,
    RBRACK = 14,
    Field = 15,
    Event = 16,
    Method = 17,
    Param = 18,
    Property = 19,
    Return = 20,
    Type2 = 21,
    COLON = 22,
    LPAREN = 23,
    RPAREN = 24,
    Assembly = 25,
    Module = 26,
    Abstract = 27,
    Async = 28,
    Const = 29,
    Fixed = 30,
    Internal = 31,
    New = 32,
    Override = 33,
    Partial = 34,
    Private = 35,
    Protected = 36,
    Public = 37,
    Readonly = 38,
    Ref = 39,
    Sealed = 40,
    Unsafe = 41,
    Virtual = 42,
    Volatile = 43,
    Out = 44,
    In = 45,
    This = 46,
    Params = 47,
    Base = 48,
    LBRACE = 49,
    RBRACE = 50,
    EQGT = 51,
    Implicit = 52,
    Explicit = 53,
    Operator = 54,
    TILDE = 55,
    Where = 56,
    Class = 57,
    Struct = 58,
    Unmanaged = 59,
    BANG = 60,
    PLUSPLUS = 61,
    DASHDASH = 62,
    True = 63,
    False = 64,
    PLUS = 65,
    DASH = 66,
    STAR = 67,
    SLASH = 68,
    PERCENT = 69,
    CARET = 70,
    PIPE = 71,
    AMP = 72,
    LTLT = 73,
    GTGT = 74,
    EQEQ = 75,
    BANGEQ = 76,
    GTEQ = 77,
    LTEQ = 78,
    Get = 79,
    Set = 80,
    Add = 81,
    Remove = 82,
    Enum = 83,
    Interface = 84,
    Delegate = 85,
    Namespace = 86,
    Var = 87,
    QMARK = 88,
    PredefinedType = 89,
    Break = 90,
    Checked = 91,
    Unchecked = 92,
    Continue = 93,
    Do = 94,
    While = 95,
    For = 96,
    Await = 97,
    Foreach = 98,
    Goto = 99,
    Case = 100,
    Default = 101,
    If = 102,
    Else = 103,
    Lock = 104,
    Switch = 105,
    Discard = 106,
    When = 107,
    Throw = 108,
    Try = 109,
    Catch = 110,
    Finally = 111,
    Yield = 112,
    PLUSEQ = 113,
    DASHEQ = 114,
    STAREQ = 115,
    SLASHEQ = 116,
    PERCENTEQ = 117,
    AMPEQ = 118,
    CARETEQ = 119,
    PIPEEQ = 120,
    LTLTEQ = 121,
    GTGTEQ = 122,
    HASH = 123,
    Stackalloc = 124,
    DOLLARDQUOTE = 125,
    DQUOTE = 126,
    DOLLARATDQUOTE = 127,
    LBRACELBRACE = 128,
    InterpolatedStringTextToken1 = 129,
    InterpolatedVerbatimStringTextToken1 = 130,
    DQUOTEDQUOTE = 131,
    InterpolationFormatClauseToken1 = 132,
    Is = 133,
    Makeref = 134,
    DASHGT = 135,
    From = 136,
    Join = 137,
    On = 138,
    Equals = 139,
    Into = 140,
    Let = 141,
    Orderby = 142,
    Ascending = 143,
    Descending = 144,
    Group = 145,
    By = 146,
    Select = 147,
    DOTDOT = 148,
    Reftype = 149,
    Refvalue = 150,
    Sizeof = 151,
    Typeof = 152,
    AMPAMP = 153,
    PIPEPIPE = 154,
    QMARKQMARK = 155,
    As = 156,
    Global = 157,
    SQUOTE = 158,
    CharacterLiteralToken1 = 159,
    EscapeSequence = 160,
    IntegerLiteral = 161,
    NullLiteral = 162,
    RealLiteral = 163,
    StringLiteralToken1 = 164,
    VerbatimStringLiteral = 165,
    Comment = 166,
    VoidKeyword = 167,
    PreprocessorCallToken1 = 168,
    PreprocessorDirective = 169,
    PreprocDirectiveEnd = 170,
    CompilationUnit = 171,
    Declaration = 172,
    ExternAliasDirective = 173,
    UsingDirective = 174,
    NameEquals = 175,
    Name = 176,
    AliasQualifiedName = 177,
    SimpleName = 178,
    GenericName = 179,
    TypeArgumentList = 180,
    QualifiedName = 181,
    AttributeList = 182,
    AttributeTargetSpecifier = 183,
    Attribute = 184,
    AttributeArgumentList = 185,
    AttributeArgument = 186,
    GlobalAttributeList = 187,
    NameColon = 188,
    EventFieldDeclaration = 189,
    Modifier = 190,
    VariableDeclaration = 191,
    VariableDeclarator = 192,
    BracketedArgumentList = 193,
    TuplePattern = 194,
    Argument = 195,
    EqualsValueClause = 196,
    FieldDeclaration = 197,
    ConstructorDeclaration = 198,
    ParameterList = 199,
    FormalParameterList = 200,
    Parameter = 201,
    ParameterModifier = 202,
    ParameterArray = 203,
    ConstructorInitializer = 204,
    ArgumentList = 205,
    Block = 206,
    ArrowExpressionClause = 207,
    ConversionOperatorDeclaration = 208,
    FunctionBody = 209,
    DestructorDeclaration = 210,
    MethodDeclaration = 211,
    ExplicitInterfaceSpecifier = 212,
    TypeParameterList = 213,
    TypeParameter = 214,
    TypeParameterConstraintsClause = 215,
    TypeParameterConstraint = 216,
    ConstructorConstraint = 217,
    TypeConstraint = 218,
    OperatorDeclaration = 219,
    OverloadableOperator = 220,
    EventDeclaration = 221,
    AccessorList = 222,
    AccessorDeclaration = 223,
    IndexerDeclaration = 224,
    BracketedParameterList = 225,
    PropertyDeclaration = 226,
    EnumDeclaration = 227,
    BaseList = 228,
    EnumMemberDeclarationList = 229,
    EnumMemberDeclaration = 230,
    ClassDeclaration = 231,
    DeclarationList = 232,
    InterfaceDeclaration = 233,
    StructDeclaration = 234,
    DelegateDeclaration = 235,
    NamespaceDeclaration = 236,
    Type = 237,
    ImplicitType = 238,
    ArrayType = 239,
    ArrayRankSpecifier = 240,
    NullableType = 241,
    PointerType = 242,
    TupleType = 243,
    TupleElement = 244,
    Statement = 245,
    BreakStatement = 246,
    CheckedStatement = 247,
    ContinueStatement = 248,
    DoStatement = 249,
    EmptyStatement = 250,
    ExpressionStatement = 251,
    FixedStatement = 252,
    ForStatement = 253,
    ForEachStatement = 254,
    GotoStatement = 255,
    IfStatement = 256,
    LabeledStatement = 257,
    LocalDeclarationStatement = 258,
    LocalFunctionStatement = 259,
    LockStatement = 260,
    ReturnStatement = 261,
    SwitchStatement = 262,
    SwitchBody = 263,
    SwitchSection = 264,
    CasePatternSwitchLabel = 265,
    Pattern = 266,
    ConstantPattern = 267,
    DeclarationPattern = 268,
    VariableDesignation = 269,
    ParenthesizedVariableDesignation = 270,
    VarPattern = 271,
    WhenClause = 272,
    CaseSwitchLabel = 273,
    DefaultSwitchLabel = 274,
    ThrowStatement = 275,
    TryStatement = 276,
    CatchClause = 277,
    CatchDeclaration = 278,
    CatchFilterClause = 279,
    FinallyClause = 280,
    UnsafeStatement = 281,
    UsingStatement = 282,
    WhileStatement = 283,
    YieldStatement = 284,
    AnonymousMethodExpression = 285,
    LambdaExpression = 286,
    AnonymousObjectCreationExpression = 287,
    AnonymousObjectMemberDeclarator = 288,
    ArrayCreationExpression = 289,
    InitializerExpression = 290,
    AssignmentExpression = 291,
    AssignmentOperator = 292,
    AwaitExpression = 293,
    CastExpression = 294,
    CheckedExpression = 295,
    ConditionalAccessExpression = 296,
    ConditionalExpression = 297,
    DeclarationExpression = 298,
    DefaultExpression = 299,
    ElementAccessExpression = 300,
    ElementBindingExpression = 301,
    ImplicitArrayCreationExpression = 302,
    ImplicitStackAllocArrayCreationExpression = 303,
    BaseExpression = 304,
    ThisExpression = 305,
    InterpolatedStringExpression = 306,
    InterpolatedStringContent = 307,
    InterpolatedVerbatimStringContent = 308,
    InterpolatedStringText = 309,
    InterpolatedVerbatimStringText = 310,
    Interpolation = 311,
    InterpolationAlignmentClause = 312,
    InterpolationFormatClause = 313,
    InvocationExpression = 314,
    IsPatternExpression = 315,
    MakeRefExpression = 316,
    MemberAccessExpression = 317,
    MemberBindingExpression = 318,
    ObjectCreationExpression = 319,
    ParenthesizedExpression = 320,
    PostfixUnaryExpression = 321,
    PrefixUnaryExpression = 322,
    QueryExpression = 323,
    FromClause = 324,
    QueryBody = 325,
    QueryClause = 326,
    JoinClause = 327,
    JoinIntoClause = 328,
    LetClause = 329,
    OrderByClause = 330,
    Ordering = 331,
    WhereClause = 332,
    SelectOrGroupClause = 333,
    GroupClause = 334,
    SelectClause = 335,
    QueryContinuation = 336,
    RangeExpression = 337,
    RefExpression = 338,
    RefTypeExpression = 339,
    RefValueExpression = 340,
    SizeOfExpression = 341,
    StackAllocArrayCreationExpression = 342,
    SwitchExpression = 343,
    SwitchExpressionArm = 344,
    ThrowExpression = 345,
    TupleExpression = 346,
    TypeOfExpression = 347,
    Expression = 348,
    BinaryExpression = 349,
    Literal = 350,
    BooleanLiteral = 351,
    CharacterLiteral = 352,
    StringLiteral = 353,
    Identifier2 = 354,
    PreprocessorCall = 355,
    CompilationUnitRepeat1 = 356,
    TypeArgumentListRepeat1 = 357,
    TypeArgumentListRepeat2 = 358,
    AttributeListRepeat1 = 359,
    AttributeArgumentListRepeat1 = 360,
    EventFieldDeclarationRepeat1 = 361,
    EventFieldDeclarationRepeat2 = 362,
    VariableDeclarationRepeat1 = 363,
    BracketedArgumentListRepeat1 = 364,
    TuplePatternRepeat1 = 365,
    FormalParameterListRepeat1 = 366,
    BlockRepeat1 = 367,
    MethodDeclarationRepeat1 = 368,
    TypeParameterListRepeat1 = 369,
    TypeParameterConstraintsClauseRepeat1 = 370,
    AccessorListRepeat1 = 371,
    BracketedParameterListRepeat1 = 372,
    EnumMemberDeclarationListRepeat1 = 373,
    ArrayRankSpecifierRepeat1 = 374,
    TupleTypeRepeat1 = 375,
    ForStatementRepeat1 = 376,
    SwitchBodyRepeat1 = 377,
    SwitchSectionRepeat1 = 378,
    ParenthesizedVariableDesignationRepeat1 = 379,
    TryStatementRepeat1 = 380,
    AnonymousObjectCreationExpressionRepeat1 = 381,
    InterpolatedStringExpressionRepeat1 = 382,
    InterpolatedStringExpressionRepeat2 = 383,
    QueryBodyRepeat1 = 384,
    OrderByClauseRepeat1 = 385,
    SwitchExpressionRepeat1 = 386,
    StringLiteralRepeat1 = 387,
    PreprocessorCallRepeat1 = 388,
    LabelName = 389,
    Error = 390,
}

impl Into<&'static str> for CSharp {
    fn into(self) -> &'static str {
        match self {
            CSharp::End => "end",
            CSharp::Identifier => "identifier",
            CSharp::Extern => "extern",
            CSharp::Alias => "alias",
            CSharp::SEMI => ";",
            CSharp::Using => "using",
            CSharp::Static => "static",
            CSharp::EQ => "=",
            CSharp::COLONCOLON => "::",
            CSharp::LT => "<",
            CSharp::COMMA => ",",
            CSharp::GT => ">",
            CSharp::DOT => ".",
            CSharp::LBRACK => "[",
            CSharp::RBRACK => "]",
            CSharp::Field => "field",
            CSharp::Event => "event",
            CSharp::Method => "method",
            CSharp::Param => "param",
            CSharp::Property => "property",
            CSharp::Return => "return",
            CSharp::Type2 => "type",
            CSharp::COLON => ":",
            CSharp::LPAREN => "(",
            CSharp::RPAREN => ")",
            CSharp::Assembly => "assembly",
            CSharp::Module => "module",
            CSharp::Abstract => "abstract",
            CSharp::Async => "async",
            CSharp::Const => "const",
            CSharp::Fixed => "fixed",
            CSharp::Internal => "internal",
            CSharp::New => "new",
            CSharp::Override => "override",
            CSharp::Partial => "partial",
            CSharp::Private => "private",
            CSharp::Protected => "protected",
            CSharp::Public => "public",
            CSharp::Readonly => "readonly",
            CSharp::Ref => "ref",
            CSharp::Sealed => "sealed",
            CSharp::Unsafe => "unsafe",
            CSharp::Virtual => "virtual",
            CSharp::Volatile => "volatile",
            CSharp::Out => "out",
            CSharp::In => "in",
            CSharp::This => "this",
            CSharp::Params => "params",
            CSharp::Base => "base",
            CSharp::LBRACE => "{",
            CSharp::RBRACE => "}",
            CSharp::EQGT => "=>",
            CSharp::Implicit => "implicit",
            CSharp::Explicit => "explicit",
            CSharp::Operator => "operator",
            CSharp::TILDE => "~",
            CSharp::Where => "where",
            CSharp::Class => "class",
            CSharp::Struct => "struct",
            CSharp::Unmanaged => "unmanaged",
            CSharp::BANG => "!",
            CSharp::PLUSPLUS => "++",
            CSharp::DASHDASH => "--",
            CSharp::True => "true",
            CSharp::False => "false",
            CSharp::PLUS => "+",
            CSharp::DASH => "-",
            CSharp::STAR => "*",
            CSharp::SLASH => "/",
            CSharp::PERCENT => "%",
            CSharp::CARET => "^",
            CSharp::PIPE => "|",
            CSharp::AMP => "&",
            CSharp::LTLT => "<<",
            CSharp::GTGT => ">>",
            CSharp::EQEQ => "==",
            CSharp::BANGEQ => "!=",
            CSharp::GTEQ => ">=",
            CSharp::LTEQ => "<=",
            CSharp::Get => "get",
            CSharp::Set => "set",
            CSharp::Add => "add",
            CSharp::Remove => "remove",
            CSharp::Enum => "enum",
            CSharp::Interface => "interface",
            CSharp::Delegate => "delegate",
            CSharp::Namespace => "namespace",
            CSharp::Var => "var",
            CSharp::QMARK => "?",
            CSharp::PredefinedType => "predefined_type",
            CSharp::Break => "break",
            CSharp::Checked => "checked",
            CSharp::Unchecked => "unchecked",
            CSharp::Continue => "continue",
            CSharp::Do => "do",
            CSharp::While => "while",
            CSharp::For => "for",
            CSharp::Await => "await",
            CSharp::Foreach => "foreach",
            CSharp::Goto => "goto",
            CSharp::Case => "case",
            CSharp::Default => "default",
            CSharp::If => "if",
            CSharp::Else => "else",
            CSharp::Lock => "lock",
            CSharp::Switch => "switch",
            CSharp::Discard => "discard",
            CSharp::When => "when",
            CSharp::Throw => "throw",
            CSharp::Try => "try",
            CSharp::Catch => "catch",
            CSharp::Finally => "finally",
            CSharp::Yield => "yield",
            CSharp::PLUSEQ => "+=",
            CSharp::DASHEQ => "-=",
            CSharp::STAREQ => "*=",
            CSharp::SLASHEQ => "/=",
            CSharp::PERCENTEQ => "%=",
            CSharp::AMPEQ => "&=",
            CSharp::CARETEQ => "^=",
            CSharp::PIPEEQ => "|=",
            CSharp::LTLTEQ => "<<=",
            CSharp::GTGTEQ => ">>=",
            CSharp::HASH => "#",
            CSharp::Stackalloc => "stackalloc",
            CSharp::DOLLARDQUOTE => "$\"",
            CSharp::DQUOTE => "\"",
            CSharp::DOLLARATDQUOTE => "$@\"",
            CSharp::LBRACELBRACE => "{{",
            CSharp::InterpolatedStringTextToken1 => "interpolated_string_text_token1",
            CSharp::InterpolatedVerbatimStringTextToken1 => {
                "interpolated_verbatim_string_text_token1"
            }
            CSharp::DQUOTEDQUOTE => "\"\"",
            CSharp::InterpolationFormatClauseToken1 => "interpolation_format_clause_token1",
            CSharp::Is => "is",
            CSharp::Makeref => "__makeref",
            CSharp::DASHGT => "->",
            CSharp::From => "from",
            CSharp::Join => "join",
            CSharp::On => "on",
            CSharp::Equals => "equals",
            CSharp::Into => "into",
            CSharp::Let => "let",
            CSharp::Orderby => "orderby",
            CSharp::Ascending => "ascending",
            CSharp::Descending => "descending",
            CSharp::Group => "group",
            CSharp::By => "by",
            CSharp::Select => "select",
            CSharp::DOTDOT => "..",
            CSharp::Reftype => "__reftype",
            CSharp::Refvalue => "__refvalue",
            CSharp::Sizeof => "sizeof",
            CSharp::Typeof => "typeof",
            CSharp::AMPAMP => "&&",
            CSharp::PIPEPIPE => "||",
            CSharp::QMARKQMARK => "??",
            CSharp::As => "as",
            CSharp::Global => "global",
            CSharp::SQUOTE => "'",
            CSharp::CharacterLiteralToken1 => "character_literal_token1",
            CSharp::EscapeSequence => "escape_sequence",
            CSharp::IntegerLiteral => "integer_literal",
            CSharp::NullLiteral => "null_literal",
            CSharp::RealLiteral => "real_literal",
            CSharp::StringLiteralToken1 => "string_literal_token1",
            CSharp::VerbatimStringLiteral => "verbatim_string_literal",
            CSharp::Comment => "comment",
            CSharp::VoidKeyword => "void_keyword",
            CSharp::PreprocessorCallToken1 => "preprocessor_call_token1",
            CSharp::PreprocessorDirective => "preprocessor_directive",
            CSharp::PreprocDirectiveEnd => "_preproc_directive_end",
            CSharp::CompilationUnit => "compilation_unit",
            CSharp::Declaration => "_declaration",
            CSharp::ExternAliasDirective => "extern_alias_directive",
            CSharp::UsingDirective => "using_directive",
            CSharp::NameEquals => "name_equals",
            CSharp::Name => "_name",
            CSharp::AliasQualifiedName => "alias_qualified_name",
            CSharp::SimpleName => "_simple_name",
            CSharp::GenericName => "generic_name",
            CSharp::TypeArgumentList => "type_argument_list",
            CSharp::QualifiedName => "qualified_name",
            CSharp::AttributeList => "attribute_list",
            CSharp::AttributeTargetSpecifier => "attribute_target_specifier",
            CSharp::Attribute => "attribute",
            CSharp::AttributeArgumentList => "attribute_argument_list",
            CSharp::AttributeArgument => "attribute_argument",
            CSharp::GlobalAttributeList => "global_attribute_list",
            CSharp::NameColon => "name_colon",
            CSharp::EventFieldDeclaration => "event_field_declaration",
            CSharp::Modifier => "modifier",
            CSharp::VariableDeclaration => "variable_declaration",
            CSharp::VariableDeclarator => "variable_declarator",
            CSharp::BracketedArgumentList => "bracketed_argument_list",
            CSharp::TuplePattern => "tuple_pattern",
            CSharp::Argument => "argument",
            CSharp::EqualsValueClause => "equals_value_clause",
            CSharp::FieldDeclaration => "field_declaration",
            CSharp::ConstructorDeclaration => "constructor_declaration",
            CSharp::ParameterList => "parameter_list",
            CSharp::FormalParameterList => "_formal_parameter_list",
            CSharp::Parameter => "parameter",
            CSharp::ParameterModifier => "parameter_modifier",
            CSharp::ParameterArray => "parameter_array",
            CSharp::ConstructorInitializer => "constructor_initializer",
            CSharp::ArgumentList => "argument_list",
            CSharp::Block => "block",
            CSharp::ArrowExpressionClause => "arrow_expression_clause",
            CSharp::ConversionOperatorDeclaration => "conversion_operator_declaration",
            CSharp::FunctionBody => "_function_body",
            CSharp::DestructorDeclaration => "destructor_declaration",
            CSharp::MethodDeclaration => "method_declaration",
            CSharp::ExplicitInterfaceSpecifier => "explicit_interface_specifier",
            CSharp::TypeParameterList => "type_parameter_list",
            CSharp::TypeParameter => "type_parameter",
            CSharp::TypeParameterConstraintsClause => "type_parameter_constraints_clause",
            CSharp::TypeParameterConstraint => "type_parameter_constraint",
            CSharp::ConstructorConstraint => "constructor_constraint",
            CSharp::TypeConstraint => "type_constraint",
            CSharp::OperatorDeclaration => "operator_declaration",
            CSharp::OverloadableOperator => "_overloadable_operator",
            CSharp::EventDeclaration => "event_declaration",
            CSharp::AccessorList => "accessor_list",
            CSharp::AccessorDeclaration => "accessor_declaration",
            CSharp::IndexerDeclaration => "indexer_declaration",
            CSharp::BracketedParameterList => "bracketed_parameter_list",
            CSharp::PropertyDeclaration => "property_declaration",
            CSharp::EnumDeclaration => "enum_declaration",
            CSharp::BaseList => "base_list",
            CSharp::EnumMemberDeclarationList => "enum_member_declaration_list",
            CSharp::EnumMemberDeclaration => "enum_member_declaration",
            CSharp::ClassDeclaration => "class_declaration",
            CSharp::DeclarationList => "declaration_list",
            CSharp::InterfaceDeclaration => "interface_declaration",
            CSharp::StructDeclaration => "struct_declaration",
            CSharp::DelegateDeclaration => "delegate_declaration",
            CSharp::NamespaceDeclaration => "namespace_declaration",
            CSharp::Type => "_type",
            CSharp::ImplicitType => "implicit_type",
            CSharp::ArrayType => "array_type",
            CSharp::ArrayRankSpecifier => "array_rank_specifier",
            CSharp::NullableType => "nullable_type",
            CSharp::PointerType => "pointer_type",
            CSharp::TupleType => "tuple_type",
            CSharp::TupleElement => "tuple_element",
            CSharp::Statement => "_statement",
            CSharp::BreakStatement => "break_statement",
            CSharp::CheckedStatement => "checked_statement",
            CSharp::ContinueStatement => "continue_statement",
            CSharp::DoStatement => "do_statement",
            CSharp::EmptyStatement => "empty_statement",
            CSharp::ExpressionStatement => "expression_statement",
            CSharp::FixedStatement => "fixed_statement",
            CSharp::ForStatement => "for_statement",
            CSharp::ForEachStatement => "for_each_statement",
            CSharp::GotoStatement => "goto_statement",
            CSharp::IfStatement => "if_statement",
            CSharp::LabeledStatement => "labeled_statement",
            CSharp::LocalDeclarationStatement => "local_declaration_statement",
            CSharp::LocalFunctionStatement => "local_function_statement",
            CSharp::LockStatement => "lock_statement",
            CSharp::ReturnStatement => "return_statement",
            CSharp::SwitchStatement => "switch_statement",
            CSharp::SwitchBody => "switch_body",
            CSharp::SwitchSection => "switch_section",
            CSharp::CasePatternSwitchLabel => "case_pattern_switch_label",
            CSharp::Pattern => "_pattern",
            CSharp::ConstantPattern => "constant_pattern",
            CSharp::DeclarationPattern => "declaration_pattern",
            CSharp::VariableDesignation => "_variable_designation",
            CSharp::ParenthesizedVariableDesignation => "parenthesized_variable_designation",
            CSharp::VarPattern => "var_pattern",
            CSharp::WhenClause => "when_clause",
            CSharp::CaseSwitchLabel => "case_switch_label",
            CSharp::DefaultSwitchLabel => "default_switch_label",
            CSharp::ThrowStatement => "throw_statement",
            CSharp::TryStatement => "try_statement",
            CSharp::CatchClause => "catch_clause",
            CSharp::CatchDeclaration => "catch_declaration",
            CSharp::CatchFilterClause => "catch_filter_clause",
            CSharp::FinallyClause => "finally_clause",
            CSharp::UnsafeStatement => "unsafe_statement",
            CSharp::UsingStatement => "using_statement",
            CSharp::WhileStatement => "while_statement",
            CSharp::YieldStatement => "yield_statement",
            CSharp::AnonymousMethodExpression => "anonymous_method_expression",
            CSharp::LambdaExpression => "lambda_expression",
            CSharp::AnonymousObjectCreationExpression => "anonymous_object_creation_expression",
            CSharp::AnonymousObjectMemberDeclarator => "_anonymous_object_member_declarator",
            CSharp::ArrayCreationExpression => "array_creation_expression",
            CSharp::InitializerExpression => "initializer_expression",
            CSharp::AssignmentExpression => "assignment_expression",
            CSharp::AssignmentOperator => "assignment_operator",
            CSharp::AwaitExpression => "await_expression",
            CSharp::CastExpression => "cast_expression",
            CSharp::CheckedExpression => "checked_expression",
            CSharp::ConditionalAccessExpression => "conditional_access_expression",
            CSharp::ConditionalExpression => "conditional_expression",
            CSharp::DeclarationExpression => "declaration_expression",
            CSharp::DefaultExpression => "default_expression",
            CSharp::ElementAccessExpression => "element_access_expression",
            CSharp::ElementBindingExpression => "element_binding_expression",
            CSharp::ImplicitArrayCreationExpression => "implicit_array_creation_expression",
            CSharp::ImplicitStackAllocArrayCreationExpression => {
                "implicit_stack_alloc_array_creation_expression"
            }
            CSharp::BaseExpression => "base_expression",
            CSharp::ThisExpression => "this_expression",
            CSharp::InterpolatedStringExpression => "interpolated_string_expression",
            CSharp::InterpolatedStringContent => "_interpolated_string_content",
            CSharp::InterpolatedVerbatimStringContent => "_interpolated_verbatim_string_content",
            CSharp::InterpolatedStringText => "interpolated_string_text",
            CSharp::InterpolatedVerbatimStringText => "interpolated_verbatim_string_text",
            CSharp::Interpolation => "interpolation",
            CSharp::InterpolationAlignmentClause => "interpolation_alignment_clause",
            CSharp::InterpolationFormatClause => "interpolation_format_clause",
            CSharp::InvocationExpression => "invocation_expression",
            CSharp::IsPatternExpression => "is_pattern_expression",
            CSharp::MakeRefExpression => "make_ref_expression",
            CSharp::MemberAccessExpression => "member_access_expression",
            CSharp::MemberBindingExpression => "member_binding_expression",
            CSharp::ObjectCreationExpression => "object_creation_expression",
            CSharp::ParenthesizedExpression => "parenthesized_expression",
            CSharp::PostfixUnaryExpression => "postfix_unary_expression",
            CSharp::PrefixUnaryExpression => "prefix_unary_expression",
            CSharp::QueryExpression => "query_expression",
            CSharp::FromClause => "from_clause",
            CSharp::QueryBody => "_query_body",
            CSharp::QueryClause => "_query_clause",
            CSharp::JoinClause => "join_clause",
            CSharp::JoinIntoClause => "join_into_clause",
            CSharp::LetClause => "let_clause",
            CSharp::OrderByClause => "order_by_clause",
            CSharp::Ordering => "_ordering",
            CSharp::WhereClause => "where_clause",
            CSharp::SelectOrGroupClause => "_select_or_group_clause",
            CSharp::GroupClause => "group_clause",
            CSharp::SelectClause => "select_clause",
            CSharp::QueryContinuation => "query_continuation",
            CSharp::RangeExpression => "range_expression",
            CSharp::RefExpression => "ref_expression",
            CSharp::RefTypeExpression => "ref_type_expression",
            CSharp::RefValueExpression => "ref_value_expression",
            CSharp::SizeOfExpression => "size_of_expression",
            CSharp::StackAllocArrayCreationExpression => "stack_alloc_array_creation_expression",
            CSharp::SwitchExpression => "switch_expression",
            CSharp::SwitchExpressionArm => "switch_expression_arm",
            CSharp::ThrowExpression => "throw_expression",
            CSharp::TupleExpression => "tuple_expression",
            CSharp::TypeOfExpression => "type_of_expression",
            CSharp::Expression => "_expression",
            CSharp::BinaryExpression => "binary_expression",
            CSharp::Literal => "_literal",
            CSharp::BooleanLiteral => "boolean_literal",
            CSharp::CharacterLiteral => "character_literal",
            CSharp::StringLiteral => "string_literal",
            CSharp::Identifier2 => "identifier",
            CSharp::PreprocessorCall => "preprocessor_call",
            CSharp::CompilationUnitRepeat1 => "compilation_unit_repeat1",
            CSharp::TypeArgumentListRepeat1 => "type_argument_list_repeat1",
            CSharp::TypeArgumentListRepeat2 => "type_argument_list_repeat2",
            CSharp::AttributeListRepeat1 => "attribute_list_repeat1",
            CSharp::AttributeArgumentListRepeat1 => "attribute_argument_list_repeat1",
            CSharp::EventFieldDeclarationRepeat1 => "event_field_declaration_repeat1",
            CSharp::EventFieldDeclarationRepeat2 => "event_field_declaration_repeat2",
            CSharp::VariableDeclarationRepeat1 => "variable_declaration_repeat1",
            CSharp::BracketedArgumentListRepeat1 => "bracketed_argument_list_repeat1",
            CSharp::TuplePatternRepeat1 => "tuple_pattern_repeat1",
            CSharp::FormalParameterListRepeat1 => "_formal_parameter_list_repeat1",
            CSharp::BlockRepeat1 => "block_repeat1",
            CSharp::MethodDeclarationRepeat1 => "method_declaration_repeat1",
            CSharp::TypeParameterListRepeat1 => "type_parameter_list_repeat1",
            CSharp::TypeParameterConstraintsClauseRepeat1 => {
                "type_parameter_constraints_clause_repeat1"
            }
            CSharp::AccessorListRepeat1 => "accessor_list_repeat1",
            CSharp::BracketedParameterListRepeat1 => "bracketed_parameter_list_repeat1",
            CSharp::EnumMemberDeclarationListRepeat1 => "enum_member_declaration_list_repeat1",
            CSharp::ArrayRankSpecifierRepeat1 => "array_rank_specifier_repeat1",
            CSharp::TupleTypeRepeat1 => "tuple_type_repeat1",
            CSharp::ForStatementRepeat1 => "for_statement_repeat1",
            CSharp::SwitchBodyRepeat1 => "switch_body_repeat1",
            CSharp::SwitchSectionRepeat1 => "switch_section_repeat1",
            CSharp::ParenthesizedVariableDesignationRepeat1 => {
                "parenthesized_variable_designation_repeat1"
            }
            CSharp::TryStatementRepeat1 => "try_statement_repeat1",
            CSharp::AnonymousObjectCreationExpressionRepeat1 => {
                "anonymous_object_creation_expression_repeat1"
            }
            CSharp::InterpolatedStringExpressionRepeat1 => "interpolated_string_expression_repeat1",
            CSharp::InterpolatedStringExpressionRepeat2 => "interpolated_string_expression_repeat2",
            CSharp::QueryBodyRepeat1 => "_query_body_repeat1",
            CSharp::OrderByClauseRepeat1 => "order_by_clause_repeat1",
            CSharp::SwitchExpressionRepeat1 => "switch_expression_repeat1",
            CSharp::StringLiteralRepeat1 => "string_literal_repeat1",
            CSharp::PreprocessorCallRepeat1 => "preprocessor_call_repeat1",
            CSharp::LabelName => "label_name",
            CSharp::Error => "ERROR",
        }
    }
}

#[allow(clippy::unreadable_literal)]
static KEYS: phf::Map<&'static str, CSharp> = ::phf::Map {
    key: 3213172566270843353,
    disps: ::phf::Slice::Static(&[
        (0, 1),
        (0, 51),
        (0, 0),
        (0, 34),
        (0, 294),
        (1, 66),
        (0, 8),
        (0, 57),
        (5, 170),
        (0, 51),
        (0, 23),
        (0, 41),
        (0, 1),
        (0, 186),
        (0, 177),
        (0, 0),
        (1, 0),
        (0, 56),
        (0, 216),
        (1, 8),
        (0, 159),
        (0, 32),
        (0, 59),
        (0, 9),
        (0, 0),
        (0, 31),
        (0, 11),
        (1, 78),
        (0, 38),
        (0, 13),
        (0, 47),
        (0, 323),
        (0, 257),
        (0, 105),
        (0, 50),
        (0, 38),
        (13, 247),
        (0, 275),
        (0, 5),
        (9, 86),
        (39, 194),
        (0, 278),
        (1, 108),
        (0, 3),
        (0, 3),
        (0, 24),
        (4, 120),
        (10, 34),
        (0, 87),
        (0, 35),
        (0, 110),
        (7, 214),
        (0, 287),
        (0, 12),
        (0, 163),
        (0, 168),
        (6, 280),
        (73, 53),
        (64, 151),
        (14, 213),
        (2, 366),
        (0, 96),
        (0, 72),
        (0, 181),
        (0, 8),
        (0, 23),
        (0, 316),
        (0, 113),
        (0, 0),
        (0, 75),
        (2, 76),
        (52, 309),
        (0, 50),
        (0, 2),
        (0, 1),
        (0, 7),
        (4, 87),
        (1, 131),
    ]),
    entries: ::phf::Slice::Static(&[
        (
            "type_argument_list_repeat2",
            CSharp::TypeArgumentListRepeat2,
        ),
        ("element_access_expression", CSharp::ElementAccessExpression),
        ("do", CSharp::Do),
        ("array_creation_expression", CSharp::ArrayCreationExpression),
        ("bracketed_parameter_list", CSharp::BracketedParameterList),
        ("attribute_list", CSharp::AttributeList),
        ("compilation_unit_repeat1", CSharp::CompilationUnitRepeat1),
        ("when_clause", CSharp::WhenClause),
        ("remove", CSharp::Remove),
        ("goto_statement", CSharp::GotoStatement),
        ("set", CSharp::Set),
        ("tuple_type", CSharp::TupleType),
        ("try", CSharp::Try),
        ("return", CSharp::Return),
        (
            "_anonymous_object_member_declarator",
            CSharp::AnonymousObjectMemberDeclarator,
        ),
        ("delegate", CSharp::Delegate),
        ("integer_literal", CSharp::IntegerLiteral),
        ("__makeref", CSharp::Makeref),
        ("ref_value_expression", CSharp::RefValueExpression),
        ("else", CSharp::Else),
        ("_variable_designation", CSharp::VariableDesignation),
        ("comment", CSharp::Comment),
        ("+", CSharp::PLUS),
        ("accessor_declaration", CSharp::AccessorDeclaration),
        ("argument", CSharp::Argument),
        ("let_clause", CSharp::LetClause),
        ("default", CSharp::Default),
        ("await", CSharp::Await),
        ("{{", CSharp::LBRACELBRACE),
        ("ascending", CSharp::Ascending),
        ("do_statement", CSharp::DoStatement),
        ("where", CSharp::Where),
        ("pointer_type", CSharp::PointerType),
        ("tuple_element", CSharp::TupleElement),
        (
            "_interpolated_verbatim_string_content",
            CSharp::InterpolatedVerbatimStringContent,
        ),
        (
            "type_parameter_constraints_clause",
            CSharp::TypeParameterConstraintsClause,
        ),
        ("tuple_type_repeat1", CSharp::TupleTypeRepeat1),
        (
            "method_declaration_repeat1",
            CSharp::MethodDeclarationRepeat1,
        ),
        ("_formal_parameter_list", CSharp::FormalParameterList),
        (">=", CSharp::GTEQ),
        ("this", CSharp::This),
        (
            "parenthesized_variable_designation_repeat1",
            CSharp::ParenthesizedVariableDesignationRepeat1,
        ),
        ("\'", CSharp::SQUOTE),
        ("method_declaration", CSharp::MethodDeclaration),
        ("group", CSharp::Group),
        ("async", CSharp::Async),
        ("partial", CSharp::Partial),
        ("from_clause", CSharp::FromClause),
        ("tuple_expression", CSharp::TupleExpression),
        ("out", CSharp::Out),
        ("param", CSharp::Param),
        ("enum", CSharp::Enum),
        ("module", CSharp::Module),
        ("|=", CSharp::PIPEEQ),
        ("interpolated_string_text", CSharp::InterpolatedStringText),
        ("property", CSharp::Property),
        ("variable_declaration", CSharp::VariableDeclaration),
        ("interface_declaration", CSharp::InterfaceDeclaration),
        ("interface", CSharp::Interface),
        (
            "implicit_array_creation_expression",
            CSharp::ImplicitArrayCreationExpression,
        ),
        ("ref_expression", CSharp::RefExpression),
        ("group_clause", CSharp::GroupClause),
        ("break_statement", CSharp::BreakStatement),
        (
            "interpolation_format_clause_token1",
            CSharp::InterpolationFormatClauseToken1,
        ),
        ("false", CSharp::False),
        (
            "interpolated_string_text_token1",
            CSharp::InterpolatedStringTextToken1,
        ),
        ("property_declaration", CSharp::PropertyDeclaration),
        (
            "local_declaration_statement",
            CSharp::LocalDeclarationStatement,
        ),
        ("variable_declarator", CSharp::VariableDeclarator),
        ("binary_expression", CSharp::BinaryExpression),
        (
            "_interpolated_string_content",
            CSharp::InterpolatedStringContent,
        ),
        ("return_statement", CSharp::ReturnStatement),
        ("end", CSharp::End),
        ("#", CSharp::HASH),
        ("real_literal", CSharp::RealLiteral),
        ("select_clause", CSharp::SelectClause),
        ("~", CSharp::TILDE),
        (
            "stack_alloc_array_creation_expression",
            CSharp::StackAllocArrayCreationExpression,
        ),
        ("tuple_pattern", CSharp::TuplePattern),
        ("params", CSharp::Params),
        ("preprocessor_directive", CSharp::PreprocessorDirective),
        ("_overloadable_operator", CSharp::OverloadableOperator),
        ("let", CSharp::Let),
        ("throw_statement", CSharp::ThrowStatement),
        ("attribute_argument_list", CSharp::AttributeArgumentList),
        ("on", CSharp::On),
        ("implicit", CSharp::Implicit),
        ("identifier", CSharp::Identifier),
        ("fixed", CSharp::Fixed),
        (
            "enum_member_declaration_list",
            CSharp::EnumMemberDeclarationList,
        ),
        ("member_access_expression", CSharp::MemberAccessExpression),
        ("struct", CSharp::Struct),
        ("method", CSharp::Method),
        (
            "interpolated_string_expression_repeat2",
            CSharp::InterpolatedStringExpressionRepeat2,
        ),
        ("empty_statement", CSharp::EmptyStatement),
        ("while", CSharp::While),
        ("range_expression", CSharp::RangeExpression),
        ("into", CSharp::Into),
        ("finally_clause", CSharp::FinallyClause),
        ("__reftype", CSharp::Reftype),
        (
            "bracketed_parameter_list_repeat1",
            CSharp::BracketedParameterListRepeat1,
        ),
        ("switch_expression_repeat1", CSharp::SwitchExpressionRepeat1),
        ("attribute", CSharp::Attribute),
        ("operator", CSharp::Operator),
        ("_expression", CSharp::Expression),
        ("unsafe_statement", CSharp::UnsafeStatement),
        ("is", CSharp::Is),
        ("$@\\\"", CSharp::DOLLARATDQUOTE),
        ("try_statement_repeat1", CSharp::TryStatementRepeat1),
        ("ERROR", CSharp::Error),
        ("case", CSharp::Case),
        ("_ordering", CSharp::Ordering),
        (
            "interpolation_alignment_clause",
            CSharp::InterpolationAlignmentClause,
        ),
        (
            "type_parameter_constraints_clause_repeat1",
            CSharp::TypeParameterConstraintsClauseRepeat1,
        ),
        ("switch", CSharp::Switch),
        (")", CSharp::RPAREN),
        ("lock", CSharp::Lock),
        (
            "_formal_parameter_list_repeat1",
            CSharp::FormalParameterListRepeat1,
        ),
        ("&&", CSharp::AMPAMP),
        ("->", CSharp::DASHGT),
        ("arrow_expression_clause", CSharp::ArrowExpressionClause),
        ("goto", CSharp::Goto),
        ("preprocessor_call_token1", CSharp::PreprocessorCallToken1),
        ("?", CSharp::QMARK),
        ("catch_clause", CSharp::CatchClause),
        ("static", CSharp::Static),
        ("conditional_expression", CSharp::ConditionalExpression),
        ("await_expression", CSharp::AwaitExpression),
        (
            "interpolated_string_expression_repeat1",
            CSharp::InterpolatedStringExpressionRepeat1,
        ),
        ("true", CSharp::True),
        ("override", CSharp::Override),
        ("=>", CSharp::EQGT),
        ("extern_alias_directive", CSharp::ExternAliasDirective),
        ("constructor_declaration", CSharp::ConstructorDeclaration),
        (
            "array_rank_specifier_repeat1",
            CSharp::ArrayRankSpecifierRepeat1,
        ),
        ("--", CSharp::DASHDASH),
        (">>=", CSharp::GTGTEQ),
        ("]", CSharp::RBRACK),
        ("checked", CSharp::Checked),
        ("discard", CSharp::Discard),
        ("..", CSharp::DOTDOT),
        ("using", CSharp::Using),
        ("where_clause", CSharp::WhereClause),
        ("??", CSharp::QMARKQMARK),
        ("for_statement_repeat1", CSharp::ForStatementRepeat1),
        ("predefined_type", CSharp::PredefinedType),
        ("array_type", CSharp::ArrayType),
        ("in", CSharp::In),
        ("typeof", CSharp::Typeof),
        ("_type", CSharp::Type),
        ("_statement", CSharp::Statement),
        ("field", CSharp::Field),
        ("for_statement", CSharp::ForStatement),
        ("cast_expression", CSharp::CastExpression),
        ("!", CSharp::BANG),
        ("add", CSharp::Add),
        ("_preproc_directive_end", CSharp::PreprocDirectiveEnd),
        ("nullable_type", CSharp::NullableType),
        ("const", CSharp::Const),
        ("by", CSharp::By),
        ("if_statement", CSharp::IfStatement),
        ("escape_sequence", CSharp::EscapeSequence),
        ("%=", CSharp::PERCENTEQ),
        ("}", CSharp::RBRACE),
        ("indexer_declaration", CSharp::IndexerDeclaration),
        (
            "variable_declaration_repeat1",
            CSharp::VariableDeclarationRepeat1,
        ),
        ("type_constraint", CSharp::TypeConstraint),
        ("&", CSharp::AMP),
        ("interpolation", CSharp::Interpolation),
        ("expression_statement", CSharp::ExpressionStatement),
        ("\\\"", CSharp::DQUOTE),
        ("unmanaged", CSharp::Unmanaged),
        ("assignment_expression", CSharp::AssignmentExpression),
        ("qualified_name", CSharp::QualifiedName),
        ("catch_filter_clause", CSharp::CatchFilterClause),
        ("this_expression", CSharp::ThisExpression),
        (
            "enum_member_declaration_list_repeat1",
            CSharp::EnumMemberDeclarationListRepeat1,
        ),
        ("-", CSharp::DASH),
        ("unchecked", CSharp::Unchecked),
        ("character_literal_token1", CSharp::CharacterLiteralToken1),
        (
            "interpolated_string_expression",
            CSharp::InterpolatedStringExpression,
        ),
        ("verbatim_string_literal", CSharp::VerbatimStringLiteral),
        ("/", CSharp::SLASH),
        ("explicit", CSharp::Explicit),
        ("base_list", CSharp::BaseList),
        ("throw", CSharp::Throw),
        ("while_statement", CSharp::WhileStatement),
        ("event_declaration", CSharp::EventDeclaration),
        ("declaration_list", CSharp::DeclarationList),
        (
            "event_field_declaration_repeat1",
            CSharp::EventFieldDeclarationRepeat1,
        ),
        ("stackalloc", CSharp::Stackalloc),
        ("accessor_list", CSharp::AccessorList),
        ("type_argument_list", CSharp::TypeArgumentList),
        ("as", CSharp::As),
        ("(", CSharp::LPAREN),
        (
            "attribute_target_specifier",
            CSharp::AttributeTargetSpecifier,
        ),
        ("argument_list", CSharp::ArgumentList),
        ("switch_section_repeat1", CSharp::SwitchSectionRepeat1),
        ("parameter_modifier", CSharp::ParameterModifier),
        ("parenthesized_expression", CSharp::ParenthesizedExpression),
        ("switch_expression", CSharp::SwitchExpression),
        ("assembly", CSharp::Assembly),
        ("global_attribute_list", CSharp::GlobalAttributeList),
        (";", CSharp::SEMI),
        ("attribute_argument", CSharp::AttributeArgument),
        ("var_pattern", CSharp::VarPattern),
        ("delegate_declaration", CSharp::DelegateDeclaration),
        ("catch_declaration", CSharp::CatchDeclaration),
        (
            "parenthesized_variable_designation",
            CSharp::ParenthesizedVariableDesignation,
        ),
        ("generic_name", CSharp::GenericName),
        ("parameter_list", CSharp::ParameterList),
        ("switch_expression_arm", CSharp::SwitchExpressionArm),
        (
            "object_creation_expression",
            CSharp::ObjectCreationExpression,
        ),
        ("\\\"\\\"", CSharp::DQUOTEDQUOTE),
        ("character_literal", CSharp::CharacterLiteral),
        (
            "interpolated_verbatim_string_text",
            CSharp::InterpolatedVerbatimStringText,
        ),
        ("^", CSharp::CARET),
        ("::", CSharp::COLONCOLON),
        ("_declaration", CSharp::Declaration),
        ("enum_member_declaration", CSharp::EnumMemberDeclaration),
        ("enum_declaration", CSharp::EnumDeclaration),
        ("alias_qualified_name", CSharp::AliasQualifiedName),
        ("_pattern", CSharp::Pattern),
        ("||", CSharp::PIPEPIPE),
        ("from", CSharp::From),
        (
            "explicit_interface_specifier",
            CSharp::ExplicitInterfaceSpecifier,
        ),
        ("name_colon", CSharp::NameColon),
        ("for", CSharp::For),
        (
            "type_argument_list_repeat1",
            CSharp::TypeArgumentListRepeat1,
        ),
        ("foreach", CSharp::Foreach),
        ("continue_statement", CSharp::ContinueStatement),
        ("bracketed_argument_list", CSharp::BracketedArgumentList),
        ("continue", CSharp::Continue),
        ("join", CSharp::Join),
        ("base_expression", CSharp::BaseExpression),
        ("protected", CSharp::Protected),
        ("case_pattern_switch_label", CSharp::CasePatternSwitchLabel),
        ("break", CSharp::Break),
        ("virtual", CSharp::Virtual),
        ("$\\\"", CSharp::DOLLARDQUOTE),
        ("accessor_list_repeat1", CSharp::AccessorListRepeat1),
        ("string_literal_repeat1", CSharp::StringLiteralRepeat1),
        ("<=", CSharp::LTEQ),
        ("try_statement", CSharp::TryStatement),
        (
            "element_binding_expression",
            CSharp::ElementBindingExpression,
        ),
        ("readonly", CSharp::Readonly),
        ("switch_section", CSharp::SwitchSection),
        ("case_switch_label", CSharp::CaseSwitchLabel),
        ("type_of_expression", CSharp::TypeOfExpression),
        ("fixed_statement", CSharp::FixedStatement),
        ("++", CSharp::PLUSPLUS),
        ("join_into_clause", CSharp::JoinIntoClause),
        ("query_continuation", CSharp::QueryContinuation),
        ("_name", CSharp::Name),
        ("default_switch_label", CSharp::DefaultSwitchLabel),
        ("invocation_expression", CSharp::InvocationExpression),
        ("namespace", CSharp::Namespace),
        ("unsafe", CSharp::Unsafe),
        ("assignment_operator", CSharp::AssignmentOperator),
        ("{", CSharp::LBRACE),
        ("&=", CSharp::AMPEQ),
        ("string_literal", CSharp::StringLiteral),
        ("type_parameter_list", CSharp::TypeParameterList),
        ("sizeof", CSharp::Sizeof),
        ("checked_statement", CSharp::CheckedStatement),
        ("select", CSharp::Select),
        ("new", CSharp::New),
        ("_query_body", CSharp::QueryBody),
        ("modifier", CSharp::Modifier),
        ("get", CSharp::Get),
        ("alias", CSharp::Alias),
        ("switch_body", CSharp::SwitchBody),
        ("preprocessor_call", CSharp::PreprocessorCall),
        ("class_declaration", CSharp::ClassDeclaration),
        ("|", CSharp::PIPE),
        ("null_literal", CSharp::NullLiteral),
        ("local_function_statement", CSharp::LocalFunctionStatement),
        ("ref_type_expression", CSharp::RefTypeExpression),
        (
            "anonymous_object_creation_expression",
            CSharp::AnonymousObjectCreationExpression,
        ),
        ("descending", CSharp::Descending),
        ("for_each_statement", CSharp::ForEachStatement),
        ("destructor_declaration", CSharp::DestructorDeclaration),
        ("query_expression", CSharp::QueryExpression),
        (
            "event_field_declaration_repeat2",
            CSharp::EventFieldDeclarationRepeat2,
        ),
        ("private", CSharp::Private),
        ("+=", CSharp::PLUSEQ),
        ("array_rank_specifier", CSharp::ArrayRankSpecifier),
        ("equals", CSharp::Equals),
        (
            "interpolated_verbatim_string_text_token1",
            CSharp::InterpolatedVerbatimStringTextToken1,
        ),
        (">>", CSharp::GTGT),
        ("yield_statement", CSharp::YieldStatement),
        ("field_declaration", CSharp::FieldDeclaration),
        ("tuple_pattern_repeat1", CSharp::TuplePatternRepeat1),
        ("constant_pattern", CSharp::ConstantPattern),
        ("^=", CSharp::CARETEQ),
        ("*=", CSharp::STAREQ),
        (
            "anonymous_object_creation_expression_repeat1",
            CSharp::AnonymousObjectCreationExpressionRepeat1,
        ),
        ("switch_body_repeat1", CSharp::SwitchBodyRepeat1),
        ("finally", CSharp::Finally),
        (".", CSharp::DOT),
        ("_simple_name", CSharp::SimpleName),
        ("!=", CSharp::BANGEQ),
        ("make_ref_expression", CSharp::MakeRefExpression),
        ("type_parameter", CSharp::TypeParameter),
        ("_query_clause", CSharp::QueryClause),
        ("type_parameter_constraint", CSharp::TypeParameterConstraint),
        (
            "type_parameter_list_repeat1",
            CSharp::TypeParameterListRepeat1,
        ),
        ("using_directive", CSharp::UsingDirective),
        ("parameter", CSharp::Parameter),
        ("when", CSharp::When),
        ("boolean_literal", CSharp::BooleanLiteral),
        ("_select_or_group_clause", CSharp::SelectOrGroupClause),
        ("operator_declaration", CSharp::OperatorDeclaration),
        (
            "anonymous_method_expression",
            CSharp::AnonymousMethodExpression,
        ),
        (":", CSharp::COLON),
        ("preprocessor_call_repeat1", CSharp::PreprocessorCallRepeat1),
        ("_literal", CSharp::Literal),
        ("ref", CSharp::Ref),
        ("using_statement", CSharp::UsingStatement),
        ("name_equals", CSharp::NameEquals),
        (
            "attribute_argument_list_repeat1",
            CSharp::AttributeArgumentListRepeat1,
        ),
        (
            "conversion_operator_declaration",
            CSharp::ConversionOperatorDeclaration,
        ),
        ("string_literal_token1", CSharp::StringLiteralToken1),
        (
            "interpolation_format_clause",
            CSharp::InterpolationFormatClause,
        ),
        ("postfix_unary_expression", CSharp::PostfixUnaryExpression),
        ("compilation_unit", CSharp::CompilationUnit),
        ("<", CSharp::LT),
        ("-=", CSharp::DASHEQ),
        ("orderby", CSharp::Orderby),
        ("size_of_expression", CSharp::SizeOfExpression),
        ("<<", CSharp::LTLT),
        ("public", CSharp::Public),
        ("global", CSharp::Global),
        ("implicit_type", CSharp::ImplicitType),
        ("prefix_unary_expression", CSharp::PrefixUnaryExpression),
        ("lambda_expression", CSharp::LambdaExpression),
        ("labeled_statement", CSharp::LabeledStatement),
        ("block_repeat1", CSharp::BlockRepeat1),
        ("declaration_pattern", CSharp::DeclarationPattern),
        ("struct_declaration", CSharp::StructDeclaration),
        ("is_pattern_expression", CSharp::IsPatternExpression),
        (
            "bracketed_argument_list_repeat1",
            CSharp::BracketedArgumentListRepeat1,
        ),
        ("extern", CSharp::Extern),
        ("volatile", CSharp::Volatile),
        ("block", CSharp::Block),
        (
            "conditional_access_expression",
            CSharp::ConditionalAccessExpression,
        ),
        ("==", CSharp::EQEQ),
        ("default_expression", CSharp::DefaultExpression),
        ("abstract", CSharp::Abstract),
        ("yield", CSharp::Yield),
        ("catch", CSharp::Catch),
        ("var", CSharp::Var),
        ("<<=", CSharp::LTLTEQ),
        ("void_keyword", CSharp::VoidKeyword),
        ("order_by_clause", CSharp::OrderByClause),
        ("sealed", CSharp::Sealed),
        ("order_by_clause_repeat1", CSharp::OrderByClauseRepeat1),
        ("lock_statement", CSharp::LockStatement),
        ("equals_value_clause", CSharp::EqualsValueClause),
        (
            "implicit_stack_alloc_array_creation_expression",
            CSharp::ImplicitStackAllocArrayCreationExpression,
        ),
        ("checked_expression", CSharp::CheckedExpression),
        ("attribute_list_repeat1", CSharp::AttributeListRepeat1),
        ("__refvalue", CSharp::Refvalue),
        ("constructor_initializer", CSharp::ConstructorInitializer),
        ("event_field_declaration", CSharp::EventFieldDeclaration),
        ("_function_body", CSharp::FunctionBody),
        ("constructor_constraint", CSharp::ConstructorConstraint),
        ("=", CSharp::EQ),
        ("label_name", CSharp::LabelName),
        ("member_binding_expression", CSharp::MemberBindingExpression),
        ("parameter_array", CSharp::ParameterArray),
        ("initializer_expression", CSharp::InitializerExpression),
        ("%", CSharp::PERCENT),
        ("join_clause", CSharp::JoinClause),
        ("namespace_declaration", CSharp::NamespaceDeclaration),
        ("*", CSharp::STAR),
        ("[", CSharp::LBRACK),
        ("declaration_expression", CSharp::DeclarationExpression),
        ("/=", CSharp::SLASHEQ),
        ("if", CSharp::If),
        ("switch_statement", CSharp::SwitchStatement),
        ("event", CSharp::Event),
        (">", CSharp::GT),
        ("throw_expression", CSharp::ThrowExpression),
        (",", CSharp::COMMA),
        ("_query_body_repeat1", CSharp::QueryBodyRepeat1),
        ("internal", CSharp::Internal),
        ("base", CSharp::Base),
        ("class", CSharp::Class),
    ]),
};

impl From<&str> for CSharp {
    #[inline(always)]
    fn from(key: &str) -> Self {
        KEYS.get(key).unwrap().clone()
    }
}

impl From<u16> for CSharp {
    #[inline(always)]
    fn from(x: u16) -> Self {
        unsafe { std::mem::transmute(x) }
    }
}

// CSharp == u16
impl PartialEq<u16> for CSharp {
    #[inline(always)]
    fn eq(&self, x: &u16) -> bool {
        *self == CSharp::from(*x)
    }
}

// u16 == CSharp
impl PartialEq<CSharp> for u16 {
    #[inline(always)]
    fn eq(&self, x: &CSharp) -> bool {
        *x == *self
    }
}